Zum Inhalt springen

Auslesen eines Backslash's


Terminator85

Empfohlene Beiträge

Hallo,

das auslesen einer textdatei funktioniert jetzt aber wenn ich nach einem

backslash suchen möchte und es durch ein anderes zeichen ersetzen möchte, geht es nicht.

(vielleicht weil das backslash ein sonderzeichen ist)

wie müsste den der suchbefehl nach dem Backslash lauten ???

---> "\" das tut nicht!!!!!

Wie müsste denn das Suchkriterium nach einem Backslash lauten [in VB]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also ich hab das mit der 92 getestet aber das tut nicht egal wie ich es eingegeben hab zum beispiel so:

'************************************************

'Text wird aus scanview.txt ausgelesen

'und die Zeichen ausgetauscht

'das Ergebnis wird in scanview2.txt dargestellt

'************************************************

Option Explicit

' Definiere E/A-Modus-Konstante

Const ForWriting = 2 ' E/A-Modus: schreiben

Const inF = "scanview.txt"

Const outF = "scanview2.txt"

' Zeichenmuster zum Suchen und Ersetzen

Const pattern = "Chr$(92)" <----- DAS TUT LEIDER NICHT

Const replacement = "\\"

Dim Text

Dim fso

Dim oFileIn, oFileOut ' Text-Stream

Dim path, filein, fileout

WIE MUSS DER BEFEHL RICHTIG LAUTEN ?

Danke :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke für die Hilfe aber so recht tut das leider noch nicht

deshalb poste ich hiermal den kompleten Quelltext:

Ich möchte eine Datei auslesen und zwar die scanview.txt

und alle Backslash durch zwei Backslash's ersetzen

Also aus C:\Windows

C:\\Windows

machen

'************************************************

'Text wird aus scanview.txt ausgelesen

'und die Zeichen ausgetauscht

'das Ergebnis wird in scanview2.txt dargestellt

'************************************************

Option Explicit

' Definiere E/A-Modus-Konstante

Const ForWriting = 2 ' E/A-Modus: schreiben

Const inF = "scanview.txt"

Const outF = "scanview2.txt"

' Zeichenmuster zum Suchen und Ersetzen

Const pattern = "????" <-- was muss hier rein ?(suche)

Const replacement = "???" <-- was muss hier rein (ersetze)

Dim Text

Dim fso

Dim oFileIn, oFileOut ' Text-Stream

Dim path, filein, fileout

path = GetPath() ' Hole Pfad

fileIn = path & inF ' Dateinamen ableiten

fileOut = path & outF

' FileSystemObject-Objekt erzeugen

Set fso = CreateObject("Scripting.FileSystemObject")

If Not fso.FileExists(fileIn) Then ' Datei vorhanden?

WScript.Echo "Datei '" & fileIn & "' nicht gefunden"

WScript.Quit 1

End if

' Öffnet Eingabedatei und Ausgabedatei

Set oFileIn = fso.OpenTextFile(fileIn) ' Eingabedatei

Set oFileOut = fso.OpenTextFile(fileOut, _

ForWriting, true) ' Ausgabedatei

Do While Not (oFileIn.atEndOfStream)

Text = oFileIn.Readline ' Lese Zeile

Text = Filter (Text, pattern, replacement)

oFileOut.WriteLine (Text) ' Schreibe Text

Loop

WScript.Echo "Textdatei: " & fileIn & vbCRLF & _

"Ergebnis in: " & fileOut

'##########################

Function GetPath

' Hole Skriptpfad

DIM path

path = WScript.ScriptFullName ' Skriptname

GetPath = Left(path, InstrRev(path, "\"))

End Function

Function Filter (txt, expr1, expr2)

' Ersetze expr1 mit expr2 in txt

Dim oReg

Set oReg = New RegExp ' Regular expression.

oReg.Global = true ' Alle Treffer

oReg.IgnoreCase = True ' Gross-/Kleinschreibung beachten.

' Ersetze alle expr1 mit expr2

oReg.Pattern = expr1 ' Muster setzen

Filter = oReg.Replace(txt, expr2)

End Function

' Ende

Link zu diesem Kommentar
Auf anderen Seiten teilen

Const pattern = "????" <-- was muss hier rein ?(suche)

Const replacement = "???" <-- was muss hier rein (ersetze)

Const pattern = Chr$(92)

Const replacement = Chr$(92) & Chr$(92)

Kann auch sein das du das $ weglassen musst.

GetPath = Left(path, InstrRev(path, "\"))

Hier würde ich auch mal "\" ersetzen...

Link zu diesem Kommentar
Auf anderen Seiten teilen

So, also das erste Problem macht Const ... = Chr(92). Das macht VBA zumindest nicht (konnte es jetzt gerade nur im VBA von Excel testen).

Ich habe das ganze jetzt auf die schnelle in VBA mal programmiert, hier meine Lösung, die funktioniert in VBA!

Sub test()

Set fso = CreateObject("Scripting.FileSystemObject")

fileIn = "D:\test.txt"

Set oFileIn = fso.OpenTextFile(fileIn)

Do While Not oFileIn.atendofstream

txt = oFileIn.Readline

MsgBox Filter(txt)

Loop

End Sub

Function Filter(txt) As String

Filter = Replace(txt, "\", "\\", 1, -1, vbTextCompare)

End Function

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Terminator85

Also ich werde das mal gleich testen vielen DANK !!! :)

Aber ich schreibe grad ein *.vbs

also ein visual basic script ich weiß nicht ob das einen Unterschied macht ?!?

Ich denke mal nicht, da es eine Art von VB ist (wie VBA auch). Eigentlich habe ich ja nur in deiner Function "Filter" das ganze gegen eine einzige Funktion ausgetauscht. Und die Funktion sollte VBS auch kennen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok ich hab das mal versucht einzubauen aber es funzt nicht.

Das Problem ist das ich noch nie was davor mit VB gemacht habe und nur ein paar habe. Das was ich vorher an Quelltext hatte hab ich auch nur aus nem buch abgetippt. So einigermaßen find ich mich schon zu recht aber deine erkenntnisse in meinen quelltext einzubinden - das schaffe ich net.....

Vielleicht kanns du mir das noch mal für "dummies" posten :)

Was ich nun jetzt genau verändern muss ?!?

Danke

:e@sy

Link zu diesem Kommentar
Auf anderen Seiten teilen

Option Explicit

' Definiere E/A-Modus-Konstante

Const ForWriting = 2 ' E/A-Modus: schreiben

Const inF = "scanview.txt"

Const outF = "scanview2.txt"

' Zeichenmuster zum Suchen und Ersetzen

Dim txt

Dim fso

Dim oFileIn, oFileOut ' Text-Stream

Dim path, filein, fileout

path = GetPath() ' Hole Pfad

fileIn = path & inF ' Dateinamen ableiten

fileOut = path & outF

' FileSystemObject-Objekt erzeugen

Set fso = CreateObject("Scripting.FileSystemObject")

If Not fso.FileExists(fileIn) Then ' Datei vorhanden?

WScript.Echo "Datei '" & fileIn & "' nicht gefunden"

WScript.Quit 1

End if

' Öffnet Eingabedatei und Ausgabedatei

Set oFileIn = fso.OpenTextFile(fileIn) ' Eingabedatei

Set oFileOut = fso.OpenTextFile(fileOut, _

ForWriting, true) ' Ausgabedatei

Do While Not (oFileIn.atEndOfStream)

txt = oFileIn.Readline ' Lese Zeile

txt = Filter (txt)

oFileOut.WriteLine (txt) ' Schreibe Text

Loop

WScript.Echo "Textdatei: " & fileIn & vbCRLF & _

"Ergebnis in: " & fileOut

'##########################

Function GetPath() As String

' Hole Skriptpfad

DIM path

path = WScript.ScriptFullName ' Skriptname

GetPath = Left(path, InstrRev(path, "\"))

End Function

Function Filter() As String

Filter = Replace(txt, "\", "\\", 1, -1, vbTextCompare)

End Function

' Ende

Das ist nur eine Vermutung von mir. Da ich bisher nichts mit VBS gemacht habe kann ich nur raten. Du mußt halt nachschauen, ob die Replace() Funktion von VBA mit der aus VBS identisch ist.

Ansonsten poste nochmal, wo genau ein Fehler auftritt... oder vielleicht findet sich ja doch noch jemand der sich mit VBS auskennt und hier helfen kann und nicht so munter "Wer wird Millionär" spielt wie ich gerade :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...