PDA

Vollständige Version anzeigen : txt Datei ändern und speichern


garry
07.12.2005, 21:53
Hallo,

hoff ich bin hier Richtig, und wenn ja vielleicht kann mir ja jemand Helfen.

Habe eine test.txt Datei deren inhalt sieht so aus.

'eintrag1','zahlenwert',eintrag2'

mein Problem ist ich muss in den Raum Zahlenwert vor die Zahl den Text POS- einbringen.
z.b.
'eintrag1','POS-zahlenwert',eintrag2'

da ich hier kein Excel oder sonstiges Prog zwischenschalten frage ich hier mal nach, ob sowas mit einem Skript ,VB oder BAT datei möglich wäre. Diesen eintrag zu Tätigen und das ganze wieder unterm gleichen namen zu speicher.

Ich lese aus einem CAD-Prog. die Atribute aus und diese werden in eine TXT datei geschrieben bevor sie von einem Stücklisten-Programm wieder eingelesen werden, bevor ich jetzt alle Daten in dem CAD Prog. ändere wollte ich mal Fragen ob sowas möglich wäre.

gruß

Garry

Joachim Hofmann
08.12.2005, 17:25
Hallo,

das geht mit dem FOR-Befehl der Kommando(DOS)-Shell.
Das ist kryptisch aber sehr mächtig.
Für weiteres suche nach FOR in der Windows-Hilfe.

Ich habe etwas rumgebastelt und folgendes erstellt:

-- Pos.bat sieht so aus:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet">

<font color="#804040"><b>for</b></font> <font color="#6a5acd">/F</font> <font color="#ff00ff">&quot;eol=; tokens=</font><font color="#ff00ff">1</font><font color="#ff00ff">,2,3,4,5 delims='&quot;</font> <font color="#008080">%%i</font> in (meineDat2.txt) do @<font color="#008080">echo</font><font color="#ff00ff"> '</font><font color="#008080">%%i</font><font color="#ff00ff">'</font><font color="#008080">%%j</font><font color="#ff00ff">'POS-</font><font color="#008080">%%k</font><font color="#ff00ff">'</font><font color="#008080">%%l</font><font color="#ff00ff">'</font><font color="#008080">%%m</font><font color="#ff00ff">' </font>&gt;&gt; Ergebnis.txt
<font color="#008080">PAUSE</font>

</div>

-- Die Testdatei meineDat2.txt sieht so aus:

'eins','zwei','drei'
'vier','fuenf','sechs'


Falls Du noch Fragen oder Verbesserungsvorschläge hast, sage es.

Achtung: nicht das Ergebnis direkt in die ursprüngliche Datei umleiten (>>), sonst geht diese kaputt. Erst nach Abschluß dann die Ergebnisdatei umbenennen.

garry
08.12.2005, 19:39
Hallo Joachim,

Danke für die Hilfe werde den For Befehl gut durchlesen und am WE das ganze mal durchspielen . Komme ich nicht klar melde ich mich nochmal.

Danke

garry

~~~dexter~~~
09.12.2005, 12:28
Und hier das ganze in VBS.

Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")
Dim AltDatei : Set AltDatei = FSO.OpenTextFile("c:\text.txt", 1, True)
DIm NeuDatei : Set NeuDatei = FSO.CreateTextFile("c:\tmp.txt", True)

Sub LoescheDatei(Pfad)
Set Datei = FSO.GetFile(Pfad)
FSO.DeleteFile(Datei.Path)
End Sub

While Not AltDatei.AtEndOfStream
Zeile = Split(AltDatei.Readline(), ",")
Zeile(1) = "Pos-" & Zeile(1)
NeuZeile = Join(Zeile, ",")
NeuDatei.WriteLine(NeuZeile)
Wend
AltDatei.Close
NeuDatei.Close

LoescheDatei("c:\text.txt")
FSO.CopyFile "c:\tmp.txt", "C:\text.txt"
LoescheDatei("c:\tmp.txt")

~~~Dexter~~~