manuel1987 Geschrieben 7. Januar 2009 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 7. Januar 2009 Teilen Geschrieben 7. Januar 2009 ich würde das mittels FSO machen und ReadLine / WriteLine einsetzen. FileSystemObject Methods s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
manuel1987 Geschrieben 9. Januar 2009 Autor Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MartinSt Geschrieben 10. Januar 2009 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
manuel1987 Geschrieben 12. Januar 2009 Autor Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Maulwurf_der_Schlaue Geschrieben 12. Januar 2009 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MartinSt Geschrieben 12. Januar 2009 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Maulwurf_der_Schlaue Geschrieben 12. Januar 2009 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
manuel1987 Geschrieben 13. Januar 2009 Autor Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Vamp777 Geschrieben 13. Januar 2009 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Vamp777 Geschrieben 13. Januar 2009 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
manuel1987 Geschrieben 13. Januar 2009 Autor Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Vamp777 Geschrieben 14. Januar 2009 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
manuel1987 Geschrieben 14. Januar 2009 Autor Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Vamp777 Geschrieben 14. Januar 2009 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
manuel1987 Geschrieben 14. Januar 2009 Autor Teilen Geschrieben 14. Januar 2009 Ok, das hört sich ja schonmal gut an ! Danke schonmal! Gruß Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Vamp777 Geschrieben 14. Januar 2009 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
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.