Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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ß

ich würde das mittels FSO machen und ReadLine / WriteLine einsetzen.

FileSystemObject Methods

s'Amstel

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ß

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

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ß

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.

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.

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?

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

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.

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

: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

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ß

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

Ok, das hört sich ja schonmal gut an :)!

Danke schonmal!

Gruß

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.