Jump to content

Zwei Textdateien per Script zusammenführen

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ß

Diesen Beitrag teilen


Link zum Beitrag
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

Diesen Beitrag teilen


Link zum Beitrag
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.

Diesen Beitrag teilen


Link zum Beitrag
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.

Diesen Beitrag teilen


Link zum Beitrag
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?

Diesen Beitrag teilen


Link zum Beitrag
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

Diesen Beitrag teilen


Link zum Beitrag
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...

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

: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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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 :) )

Diesen Beitrag teilen


Link zum Beitrag
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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Nimm an der Diskussion teil

Du kannst jetzt hier posten und Dich später registrieren. Wenn Du bereits über eine Konto verfügst, melde Dich jetzt an, um mit Deinem Konto zu posten.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.


Fachinformatiker.de, 2020 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung