Jede 3. Zeile eines .txt, durch jede 3. Zeile eines anderen txt ersetzen

jonasshole

Benutzer
Mitglied seit
07.07.2009
Beiträge
53
Reaktionspunkte
0
Moin Kinnaaaas!
Meine Frage lautet:
Wie kann man jede 3. Zeile eines .txt, durch jede 3. Zeile eines anderen txt ersetzen?
Das sollte möglichst automatisch von statten gehen...

kann mir da jemand helfen?

LG JASs

Komma-saufen.tk
 

Mothman

Bekanntes Gesicht
Mitglied seit
30.10.2004
Beiträge
15.007
Reaktionspunkte
1.682
Website
www.yours-media.de
Also mir fällt spontan keine fertige Softwarelösung für dein Problem ein.
Wüsste also kein Programm, was dies bewerkstelligen könnte.

Allerdings stelle ich es mir nicht allzu schwer vor sich dafür selber ein Tool zu erstellen.

Du müsstest halt abwägen, wie wichtig die Lösung dieses Problems ist und ob sich die Investition von 1-2 Arbeitsstunden in die Entwicklung eines entsprechenden Tools lohnen würde.
 
D

DonBarcal

Gast
Mit Excel bzw. Calc dürfte das ganz einfach sein, da jede Zeile beim Import in eine Zelle geschrieben werden kann. Wenn du es nicht so mit der VB-Programmierung hast, kannst du dann einfach ein Makro für den ersten Austausch aufzeichnen und die entsprechenden Zeilen im Code mit ner Schleife versehen.
 

Onlinestate

Bekanntes Gesicht
Mitglied seit
31.08.2002
Beiträge
3.042
Reaktionspunkte
102
Ich hab da mal was gebastelt. Hat mich keine 30 Minuten mit ausprobieren gekostet.
Getestet und funktioniert hat es, wenn beide Textdateien gleich lang sind, was anderes hab ich jetzt nicht probiert. Exception-Handling gibts auch nicht, also im Fehlerfall nicht wundern.
Habs unter Ubuntu mit MonoDevelop gebaut, sollte aber auch mit Windows gehen (aber jetzt nicht getestetmit Win7 64bit erfolgreich getestet).
http://dl.dropbox.com/u/961808...

Sourcen sind auch dabei. Also kann man das zur Not auch im VisualStudio kompilieren und anpassen.

Edit: Achja, ich sollte vielleicht noch sagen, wie man das Teil bedient. Also Konsole öffnen, Exe suchen und die zwei Textdateien, sowie eine Zieldatei auswählen. Die Zieldatei wird kommentarlos überschrieben, also vorsicht.
Bsp: ThreeWay.exe 1.txt 2.txt 3.txt
1.txt ist die Quelldatei, 2.txt das Muster und in 3.txt das Ziel. Ins Ziel werden die ersten zwei Zeilen aus der Quelle geschrieben, die dritte Zeile kommt aus dem Muster, dann beginnt der Zyklus bis die Quelle zu Ende ist.

Wer auf Unhandled Exceptions steht, braucht also nur eine Muster-Datei, welche kürzer ist als die Quell-Datei...
 
TE
J

jonasshole

Benutzer
Mitglied seit
07.07.2009
Beiträge
53
Reaktionspunkte
0
Vielen Dank euch dreien!!
Vielen Danke speziell an dich Onlinestate, dass du so viel zeit in mein Problem investiert hast!

Ich will das Programm sehr gerne benutzen...
leider komm ich mit komandozeilen nicht ganz zurecht...
Versuchen tu ichs trotzdem!
Nur n paar fragen:
Mit konsole meinst du Eingabeaufforderung richtig???

Wenn das stimmt hab ich mich mithilfe von "cd" in den Ordner "ThreeWay" (LOL XD) manöfriert...
Habe dann versucht damit die windows exe zu öffnen...
was leider nicht klappt... Die fehlermeldung wurde von dir vorrausgeagt, wenn ich mich nicht täusche:

unbehandelte Ausnahme: system.IndexOutOfRangeException: der index war außerhalb des arraybereichs
bei ThreeWay.ThreeWay.Main(String[ ] args)

was hab ich falsch gemacht?

Lg JASs
 

Onlinestate

Bekanntes Gesicht
Mitglied seit
31.08.2002
Beiträge
3.042
Reaktionspunkte
102
Wenn das stimmt hab ich mich mithilfe von "cd" in den Ordner "ThreeWay" (LOL XD) manöfriert...
Habe dann versucht damit die windows exe zu öffnen...
was leider nicht klappt... Die fehlermeldung wurde von dir vorrausgeagt, wenn ich mich nicht täusche:

unbehandelte Ausnahme: system.IndexOutOfRangeException: der index war außerhalb des arraybereichs
bei ThreeWay.ThreeWay.Main(String[ ] args)
Da hast du die Parameter nicht richtig gesetzt. Er braucht genau drei Parameter, nicht mehr, nicht weniger.
Wieder mal kein Exception-Handling. Dass man da schon Fehler machen kann, daran hab ich gar nicht gedacht ;)
Du kannst es dir auch (etwas) einfacher machen, wenn du absolute Pfade benutzt. Also Beispiel:
"C:\ThreeWay.exe" "C:\1.txt" "C:\2.txt" "C:\3.txt"
Das kannste auch mit Ausführen (Windows+R) machen, aber nach Beendigung schließt sich auch die Konsole. Fehlermeldungen kannste dann also nicht mehr lesen.

Nochma zu Erinnerung: 1.txt ist die Quelle, 2.txt das Muster und 3.txt die Zieldatei. 3.txt wird dabei auch kommentarlos überschrieben, falls sie bereits existiert. Wenn du im Ordner "ThreeWay-linux" schaust, findeset du dort die drei Dateien, mit denen ich das getestet habe.
 
TE
J

jonasshole

Benutzer
Mitglied seit
07.07.2009
Beiträge
53
Reaktionspunkte
0
Danke ich habs verstanden! :-D

Juhu!!
War garnich soo schwer!

Ich muss noch n bisschen rumspielen, aber das müsste klappen!
Danke erstaml für alles
 
Oben Unten