manuel1987 Geschrieben 7. Januar 2009 Geschrieben 7. Januar 2009 Hallo, ich habe die Aufgabe zwei Textdokumente zusammenzuführen. Kleines Beispiel: Textdatei 1: #Überschrift1 Vorname;Name;Alter;... Hans;Maier;20 Jürgen;Müller;30 #Überschrift2 Textdatei 2 #Überschrift1 Vorname;Name;Alter;... Olaf;Schmidt;80 Ingo;Huber;20 #Überschrift2 Die zwei Dateien haben die gleichen Überschriften, nur andere Inhalte. Nun soll aus den zwei Dateien eine per Script erstellt werden. Ergebnis:#Überschrift1 Vorname;Name;Alter;... Hans;Maier;20 Jürgen;Müller;30 Olaf;Schmidt;80 Ingo;Huber;20 #Überschrift2 Da ich leider noch keine VBS Erfahrungen gemacht habe, fällt es mir nicht all zu einfach. Hat jemand ein paar Tipps für mich, wie ich das bewerkstelligen kann? Vielen Dank im Voraus. Gruß Zitieren
Amstelchen Geschrieben 7. Januar 2009 Geschrieben 7. Januar 2009 ich würde das mittels FSO machen und ReadLine / WriteLine einsetzen. FileSystemObject Methods s'Amstel Zitieren
manuel1987 Geschrieben 9. Januar 2009 Autor Geschrieben 9. Januar 2009 Hallo, ja schon... Aber wie sage ich dem Script, dass er z.B. genau unter #Überschrift1 die Daten aus den beiden Textdokumenten kopieren soll... Das ist mir noch nicht so klar... Gruß Zitieren
MartinSt Geschrieben 10. Januar 2009 Geschrieben 10. Januar 2009 Hallo wie Amstelchen schon angedeutet hat, kannst Du mit den FSO-Metoden die jeweils passenden Teile/Zeilen aus den beiden Dateien lesen und ebenfalls per FSO-Methoden in die 3. Datei schreiben. Und falls es dir nur um die Lösung des Problems geht, ohne dass es zwingend VB/VBS sein muß, würde ich drüber nachdenken, das Problem evtl. einfacher mit grep & Co. zu lösen. Gruß Martin Zitieren
manuel1987 Geschrieben 12. Januar 2009 Autor Geschrieben 12. Januar 2009 Hallo, nein muss zwingend mit vbs sein, das ist ja mein Problem:D! Habe bisher noch null damit gemacht... Aber FSO ist jedenfalls schonmal ein guter Ansatz... Gruß Zitieren
Maulwurf_der_Schlaue Geschrieben 12. Januar 2009 Geschrieben 12. Januar 2009 Hallo, wenn es nicht von Basic abhängt und Du unter Windows arbeitest kann ich Dir den FOR-Befehl empfehlen. Start->Ausführen->CMD dann "for /?" ohne "" für Hilfe zum Befehl eingeben. Mit FOR die Datei1 durchlesen und den Echo-Befehl in Datei3 umleiten. Anschlließend mit FOR die Datei2 durchlesen und den Echo-Befehl in Datei3 umleiten. Schon sind beide Dateien in Datei3 vereint. Hinweis: Datei3 darf vor beginn nicht exisiteren da das Umleiten mit ">>" immer zum Anfügen der Datei führt. Zitieren
MartinSt Geschrieben 12. Januar 2009 Geschrieben 12. Januar 2009 @Maulwurf 1. warum braucht man für den for-Befehl Windows ? 2. dieser Befehl iteriert über eine Menge von Dateien, nicht über den Inhalt einer Datei Außerdem war gesagt, dass VBS sein muß. Zitieren
Maulwurf_der_Schlaue Geschrieben 12. Januar 2009 Geschrieben 12. Januar 2009 Hallo, [...] Außerdem war gesagt, dass VBS sein muß. Hallo, nein muss zwingend mit vbs sein, das ist ja mein Problem:D! [...] Entschuldigung da hab ich ein "nicht" gelesen wo keines war @Maulwurf 1. warum braucht man für den for-Befehl Windows ? 2. dieser Befehl iteriert über eine Menge von Dateien, nicht über den Inhalt einer Datei [...] zu 1) Ich wollte damit nicht ausdrücken das man für den for-Befehl Windows braucht, ich wollte damit sagen wenn man es hat sollte der Befehl dabei sein und man kann Ihn hierzu verwenden. zu 2) Der Befehl kann auch durch den Inhalt einer Datei iterieren und somit wäre er ein guter Kandidat für die Lösung des Problems wenn es nicht in VBS gelöst werden müsste. Zitieren
manuel1987 Geschrieben 13. Januar 2009 Autor Geschrieben 13. Januar 2009 Hallo, ich habe bisher erreicht, dass ich einzelne Textabschnitte als String mit ReadLine einlesen und mit WriteLine in eine neue Datei schreiben kann... Aber wie sag ich, dass ich z.B. alles bis #Überschrift 2 will? Also das alles will ich kopiert haben: #Überschrift1 Vorname;Name;Alter;... Hans;Maier;20 Jürgen;Müller;30 Kann mir da jemand n Beispiel geben oder mir weiterhelfen? Zitieren
Vamp777 Geschrieben 13. Januar 2009 Geschrieben 13. Januar 2009 kannst du denn mit sicherheit sagen, ob nach dem Text #Überschrift1 Vorname;Name;Alter;... Hans;Maier;20 Jürgen;Müller;30 nichts mehr weiter kommt? wenn ja dann mach doch (sozusagen) nen kleinen Filter, indem du sagst wenn Zeile=#Überschrift1 dann tu nichts oder kopiere ende Zitieren
Vamp777 Geschrieben 13. Januar 2009 Geschrieben 13. Januar 2009 oder du sagst wenn Zeile=#Überschrift2 dann kopieren beenden habe gerade völlig verpeilt, bei was für einer Sprache wir hier sind. vieleicht kannst mir mal den Code geben und ich seh mir das ganze mal an. Zitieren
manuel1987 Geschrieben 13. Januar 2009 Autor Geschrieben 13. Januar 2009 Hallo, naja etwas schlecht erklärt von mir... Also es soll in eine 3. Datei folgendes gelesen und geschrieben werden: Datei 1: #Überschrift1 dsdsdd #Überschrift2 dsdsds Datei 2: #Überschrift1 dsdsdd #Überschrift2 dsdsds = Zuerst aus Datei 1 #Überschrift1 lesen und bis zum Ende den Inhalt von #Überschrift1 in Datei 3 kopieren. Das gleiche dahinter, nur eben aus Datei 2. Dann #Überschrift2 und alles dahinter... usw. verständlicher? Mein Problem ist, wie sage ich dem Script, dass er alles bis zum letzten Eintrag von #Überschrift1 kopieren soll?! Und bei der zweiten Datei muss er dann nach #Überschrift1 anfangen, denn sonst hab ich zweimal die Überschrift drin... Zitieren
Vamp777 Geschrieben 14. Januar 2009 Geschrieben 14. Januar 2009 :upps jetzt hab ich kapiert was du willst. ----Datei1---- #Überschrift1 1 #Überschrift2 3 ----Datei2---- #Überschrift1 2 #Überschrift2 4 ----Datei3---- #Überschrift1 1 2 #Überschrift2 3 4 lieg ich da jetzt richtig? ich hoffe es doch mal Zitieren
manuel1987 Geschrieben 14. Januar 2009 Autor Geschrieben 14. Januar 2009 ja genau, so meinte ich das*g*! Kannst du mir evtl. kurz ein Code-Beispiel geben, wie ich das anstelle?! Vielen Dank im Voraus. Gruß Zitieren
Vamp777 Geschrieben 14. Januar 2009 Geschrieben 14. Januar 2009 ich sitze gerade an einen kleinen Prog und bin sogar fast fertig. ich würde sagen wenn es zu 10:00Uhr noch nicht da ist, dann kann ich es erst spätestens zum Mittag reinstellen (man muss ja schließlich auch noch was für die Arbeit tun ) Zitieren
manuel1987 Geschrieben 14. Januar 2009 Autor Geschrieben 14. Januar 2009 Ok, das hört sich ja schonmal gut an ! Danke schonmal! Gruß Zitieren
Vamp777 Geschrieben 14. Januar 2009 Geschrieben 14. Januar 2009 im Anhang ist eine Datei (Verbinden.txt). Lade dir die Datei runter und benenne sie von "Verbinden.txt" in "Verbinden.exe" um und dann schau dir das programm mal an. hoffe das es jetzt das richtige ist und das du was damit anfangen kannst. der auschlag gebede Quelltext ist volgender, in dem das denn alles überprüft wird. Dim strText1 As String Dim strText2 As String Dim intStop As Integer Dim i As Integer Text3.Text = "" intStop = InStr(1, Text1.Text, "#Überschrift2") strText1 = Mid$(Text1.Text, 1, intStop - 1) intStop = InStr(1, Text2.Text, "#Überschrift2") strText2 = Mid$(Text2.Text, 16, intStop - 16) Text3.Text = strText1 & strText2 intStop = InStr(1, Text1.Text, "#Überschrift2") strText1 = Mid$(Text1.Text, intStop) intStop = InStr(1, Text2.Text, "#Überschrift2") strText2 = Mid$(Text2.Text, intStop + 15) Text3.Text = Text3.Text & vbNewLine & strText1 & strText2 P.s. wenn sich noch mehr Überschriften in diesen Dateien befinden, dann funktioniert es nicht, sondern nur, wenn es zwei Überschriften gibtVerbinden.txt Zitieren
Empfohlene Beiträge
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.