Solved

Converting Dir's to \..\..\

Posted on 1998-10-03
3
165 Views
Last Modified: 2010-04-30
If Name = "a111a111a111" Then Exit Sub

Hi,
I would like to do the following,
(real sorry for the points)

How do you convert a string with a file path from this C:\Canada\ONT\Ottawa
to this
..\..\
assuming I wanted to add a Link to Canada while the inital HTML file was saved in Ottawa.

Again, sorry for the points.
0
Comment
Question by:idcanada
  • 2
3 Comments
 

Accepted Solution

by:
jfayling earned 30 total points
ID: 1437909
I use a function that I wrote that will split up a a string by a userdefined character.


I would do something like this

dim total as long
dim tmpArray as variant

  total=parsestring(tmpFilePath,"\",tmpArray)

 

  using the example you gave us:
      total = 3
      tmpArray(0)="C:"
      tmpArray(1)="Canada"
      tmpArray(2)="ONT"
      tmpArray(3)="Ottawa"

  notice that the 3 was the number of \ is found!

Good Luck!

Here is the function:

Function ParseString(LookIn As String, Search As String, ByRef ReturnArray As Variant) As Long
'
' Function Name:    ParseString
'
' Author:           JF Software (Jason R. Fayling)
'                   jfayling@glasscity.net
' Date:             1/10/97
'
' Inputs:           LookIn  (STRING)        String to use
'                   Search  (STRING)        What to look for in string
'                   ReturnARRAY (VARIANT)   Any found will be stored here
'
' Outputs:          ParseString (INTEGER)   Number of items in ReturnArray
'                                           starting with zero. If no item
'                                           was found, then returns -1
'
'                   ReturnArray (VARIANT)   Found items from string
'
' Purpose:          ParseString will take a string and seperate it into
'                   user-defined parts.
'                   Example:
'
'                       Dim i as Integer
'                       Dim j as integer
'                       dim Temp as variant
'
'                       i=ParseString("10/24/97","/",Temp)
'
'                       for j=0 to i
'                           msgbox Temp(j)
'                       next j
'
'                   This will display 10 then 24 then 97
'
'
' You are granted royalty free use of this code in your projects.   You may
' remove this comment block in your own projects.   If you intend to redistribute
' this function as part of a library or outside of your own VB project then you
' must leave this block in tact.


Dim X As Long
Dim start As Long
Dim pos As Long
Dim track As Long
ReDim TempHolder(Len(LookIn)) As String


    track = 0
    start = 1
   
    ' Start at the beginning of string and move down until it finds
    ' character it is looking for. Once it finds the character, it
    ' places everything before it and after the last found item into
    ' a new element in an array
   
    Do
        pos = InStr(start, LookIn, Search, vbBinaryCompare)
        If pos > 0 Then
            TempHolder(track) = Mid$(LookIn, start, (pos - start))
            track = track + 1
            start = pos + Len(Search)
        End If
    Loop Until pos = 0
   
    ' Make sure everything has been copied into Temp array
    TempHolder(track) = Mid$(LookIn, start, Len(LookIn))
       
    ReDim tempholder2(track)
   
    ' Move only elements with data in them
    For X = 0 To track
        tempholder2(X) = TempHolder(X)
    Next X
   
    Erase TempHolder
   
    ' Return Array is a variant so it can be passed an array
    ReturnArray = tempholder2
   
    If track = 0 Then
        ' Nothing was found
        ParseString = -1
    Else
        ParseString = track
    End If

End Function


0
 
LVL 4

Author Comment

by:idcanada
ID: 1437910
Thats a very good function,
although, would you mind helping me achieve the task asked in the Question?

I have a few problems,
How to read the last array?
(contains the filename)
and convert the rest to \..\..\ ???


0
 
LVL 4

Author Comment

by:idcanada
ID: 1437911
Okay,

I can read the last array.


0

Featured Post

Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Introduction I needed to skip over some file processing within a For...Next loop in some old production code and wished that VB (classic) had a statement that would drop down to the end of the current iteration, bypassing the statements that were c…
When trying to find the cause of a problem in VBA or VB6 it's often valuable to know what procedures were executed prior to the error. You can use the Call Stack for that but it is often inadequate because it may show procedures you aren't intereste…
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…

816 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now