Nico: Visual Basic 5.0: Zeichen ersetzen

Hi Ihr alle!

Ich muss in VB 5.0 etwas in die Registry eintragen, einen Pfad. Dazu muss ich aus der Variable CurDir$ aber alle Backslash's in zwei umwandeln, also \ in \, weil die Reqistry diese als Steuerzeichen ansieht. Ich habe erfahren, dass es so gehen kann:

newString = Replace(oldString, "", "\")

doch VB5 kennt diese Funtion nicht. Wie geht es sonst?

Nico

  1. Hallo Nico

    Von Hand programmiert in etwa so:

    Dim s_old, s_new, s_char As String
    Dim i_len, i_cnt As Integer

    s_old = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion"
    s_new = ""
    i_cnt = 0
    i_len = Len(s_old)
    s_char = ""
    While i_cnt < i_len
       s_char = Mid(s_old, i_cnt, 1)
       If s_char = "" Then
          s_new = s_new + "\"
       Else
          s_new = s_new + s_char
       End If
       i_cnt = i_cnt + 1
    Wend

    Danch steht in s_new der konvertierte String drin.

    Die Befehle entsprechen dem VBA for Access97, sollten bei diesen Grundbefehlen aber auch in VB 5.0 funktionieren.

    Grüsse
    Tom

  2. Hi Ihr alle!

    Ich muss in VB 5.0 etwas in die Registry eintragen, einen Pfad. Dazu muss ich aus der Variable CurDir$ aber alle Backslash's in zwei umwandeln, also \ in \, weil die Reqistry diese als Steuerzeichen ansieht. Ich habe erfahren, dass es so gehen kann:

    newString = Replace(oldString, "", "\")

    doch VB5 kennt diese Funtion nicht. Wie geht es sonst?

    function Replace(old$,a$,b$)
    if len(old$)=0 then exit function

    dim temp$, erg$
    for i%=1 to len(old$)
       if mid$(old$,i%,len(a$))=a$ then
          erg$=erg$+b$
       else
          erg$=erg$+mid$(old$,i%,1)
       endif
    next
    Replace=erg$

    end function

    Ist ungetestet, nur so ausm Kopf hingeschrieben. Viel Spaß.

    Thomas