Zum Inhalt springen

Zwei Textdateien per Script zusammenführen


manuel1987

Empfohlene Beiträge

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ß

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 gibt

Verbinden.txt

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...