Bestimmten Inhalt aus Textdatei auslesen und in andere Textdatei schreiben
Hallo Zusammen,
ich bin hier neu und habe bisher keinerlei Ahnung von VBS. Habe bei google schon geschaut, aber bisher überhaupt nichts gefunden.
Es geht um folgendes:
Ich habe eine Textdatei A.txt
Der Inhalt von A.txt sieht so aus (mal mit umbruch mal ohne):
<Login_name="Anton"><geschlecht="m">
<Login_name="Berta"><geschlecht="w">
<Login_name="Caesar"><geschlecht="m">
<Login_name="Dora"><geschlecht="w">
Ich möchte nun eine VBS-Datei erstellen, die jeweils nur die Login_Namen ausliest (also Anton, Berta, Caesar und Dora); ohne Anführungszeichen und diese dann in eine Textdatei B.txt schreibt.
Der Inhalt in B.txt soll dann so aussehen:
Anton
Berta
Caesar
Dora
Mit welchen Befehlen kann ich das realisieren? Wie kann ich dem Programm sagen, dass es speziell nach "<Login_name=" suchen soll und dann bis zum nächsten Anführungszeichen sich die Namen merkt. Das macht auf diese Weise schon Sinn, da die Namen unterschiedlich lang sein können. Natürlich habe den Inhalt aus A.txt gekürzt. Da stehen natürlich noch andere Dinge drin.
Der Ablauf lautet wie folgt:
Springe zu "<Login_name="
Nehme jeden Buchstaben bis zum nächsten "
Schreibe den Namen in B.txt
Wiederhole solange bis A.txt komplett durchsucht wurde
Ich habe schon nach befehlen gesucht aber ich kann damit überhaupt nichts anfangen. Ich möchte hier nicht nach komplettten Quellcodes fragen, lediglich nach den Befehlen, die ich brauche.
Vielen Danke schonmal!
MfG
Fireron
ich bin hier neu und habe bisher keinerlei Ahnung von VBS. Habe bei google schon geschaut, aber bisher überhaupt nichts gefunden.
Es geht um folgendes:
Ich habe eine Textdatei A.txt
Der Inhalt von A.txt sieht so aus (mal mit umbruch mal ohne):
<Login_name="Anton"><geschlecht="m">
<Login_name="Berta"><geschlecht="w">
<Login_name="Caesar"><geschlecht="m">
<Login_name="Dora"><geschlecht="w">
Ich möchte nun eine VBS-Datei erstellen, die jeweils nur die Login_Namen ausliest (also Anton, Berta, Caesar und Dora); ohne Anführungszeichen und diese dann in eine Textdatei B.txt schreibt.
Der Inhalt in B.txt soll dann so aussehen:
Anton
Berta
Caesar
Dora
Mit welchen Befehlen kann ich das realisieren? Wie kann ich dem Programm sagen, dass es speziell nach "<Login_name=" suchen soll und dann bis zum nächsten Anführungszeichen sich die Namen merkt. Das macht auf diese Weise schon Sinn, da die Namen unterschiedlich lang sein können. Natürlich habe den Inhalt aus A.txt gekürzt. Da stehen natürlich noch andere Dinge drin.
Der Ablauf lautet wie folgt:
Springe zu "<Login_name="
Nehme jeden Buchstaben bis zum nächsten "
Schreibe den Namen in B.txt
Wiederhole solange bis A.txt komplett durchsucht wurde
Ich habe schon nach befehlen gesucht aber ich kann damit überhaupt nichts anfangen. Ich möchte hier nicht nach komplettten Quellcodes fragen, lediglich nach den Befehlen, die ich brauche.
Vielen Danke schonmal!
MfG
Fireron
Please also mark the comments that contributed to the solution of the article
Content-Key: 150529
Url: https://administrator.de/contentid/150529
Printed on: April 27, 2024 at 02:04 o'clock
8 Comments
Latest comment
Zitat von @fireron:
Wie kann ich dem Programm sagen, dass es speziell nach "<Login_name="
suchen soll und dann bis zum nächsten Anführungszeichen sich die Namen merkt.
Hier sollten Dir Reguläre Ausdrücke weiterhelfen können. Über Google landet man Treffer mit dem Suchbegriff "regex" oder "regexp".Wie kann ich dem Programm sagen, dass es speziell nach "<Login_name="
suchen soll und dann bis zum nächsten Anführungszeichen sich die Namen merkt.
Grüße,
Fitz
Hallo Fireron!
Versuchs mal mit diesem VB-Script:
Die Pfadangaben entsprechen anpassen.
Die Login-Namen dürfen nur alphabetische Zeichen [A-Z] [a-z] [0-9] und Unterstrich enthalten und die Export-Datei wird überschrieben, sofern diese bereits existiert.
Gruß Dieter
Versuchs mal mit diesem VB-Script:
Const TextImport = "E:\Test\Import.Txt"
Const TextExport = "E:\Test\Export.Txt"
Dim RE, Matches, Fso, ImportFile, ExportFile, Text
Set RE = New RegExp
Set Fso = CreateObject("Scripting.FileSystemObject")
Set ImportFile = Fso.OpenTextFile(TextImport)
Set ExportFile = Fso.CreateTextFile(TextExport)
Text = ImportFile.ReadAll: ImportFile.Close
With RE
.Global = True
.IgnoreCase = True
.Pattern = "<Login_name=""(\w+)"">"
End With
For Each Matches In RE.Execute(Text)
If Matches.SubMatches.Count = 1 Then ExportFile.WriteLine Matches.SubMatches(0)
Next
ExportFile.Close
Die Login-Namen dürfen nur alphabetische Zeichen [A-Z] [a-z] [0-9] und Unterstrich enthalten und die Export-Datei wird überschrieben, sofern diese bereits existiert.
Gruß Dieter
Hallo Tim!
Gern geschehen Freut mich, wenn's funktioniert.
Den Thread könntest Du noch auf gelöst setzen
Gruß Dieter
Gern geschehen Freut mich, wenn's funktioniert.
Den Thread könntest Du noch auf gelöst setzen
Gruß Dieter
Hallo Tim!
Das geht so:
Texte können einfach mit dem Verkettungsoperator & zusammengefügt werrden z.B. "Text1" & "Text2" & "Text3" usw.
Gruß Dieter
Das geht so:
Const TextImport = "E:\Test\Import.Txt"
Const TextExport = "E:\Test\Export.Txt"
Dim RE, Matches, Fso, ImportFile, ExportFile, Text
Set RE = New RegExp
Set Fso = CreateObject("Scripting.FileSystemObject")
Set ImportFile = Fso.OpenTextFile(TextImport)
Set ExportFile = Fso.CreateTextFile(TextExport)
Text = ImportFile.ReadAll: ImportFile.Close
With RE
.Global = True
.IgnoreCase = True
.Pattern = "<Login_name=""(\w+)"">"
End With
ExportFile.WriteLine "Dies ist die Export.txt. Hier sind alle Benutzer aufgeführt."
For Each Matches In RE.Execute(Text)
If Matches.SubMatches.Count = 1 Then ExportFile.WriteLine "Login: " & Matches.SubMatches(0)
Next
ExportFile.WriteLine "Das waren die Loginnamen aller Benutzer."
ExportFile.Close
Gruß Dieter
Hallo Tim!
Gern geschehen
Gruß Dieter
Gern geschehen
Ein schönes Wochende wünsche ich dir!
Danke, dass wünsche ich Dir auchGruß Dieter