Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Bestimmten Inhalt aus Textdatei auslesen und in andere Textdatei schreiben

Frage Entwicklung VB for Applications

Mitglied: fireron

fireron (Level 1) - Jetzt verbinden

07.09.2010 um 15:21 Uhr, 6284 Aufrufe, 8 Kommentare

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
Mitglied: Fitzcarraldo
07.09.2010 um 15:36 Uhr
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".

Grüße,
Fitz
Bitte warten ..
Mitglied: 76109
07.09.2010 um 18:51 Uhr
Hallo Fireron!

Versuchs mal mit diesem VB-Script:
01.
Const TextImport = "E:\Test\Import.Txt" 
02.
Const TextExport = "E:\Test\Export.Txt" 
03.
 
04.
Dim RE, Matches, Fso, ImportFile, ExportFile, Text 
05.
 
06.
Set RE = New RegExp 
07.
Set Fso = CreateObject("Scripting.FileSystemObject") 
08.
     
09.
Set ImportFile = Fso.OpenTextFile(TextImport) 
10.
Set ExportFile = Fso.CreateTextFile(TextExport) 
11.
     
12.
Text = ImportFile.ReadAll:  ImportFile.Close 
13.
     
14.
With RE 
15.
   .Global = True 
16.
   .IgnoreCase = True 
17.
   .Pattern = "<Login_name=""(\w+)"">" 
18.
End With 
19.
     
20.
For Each Matches In RE.Execute(Text) 
21.
    If Matches.SubMatches.Count = 1 Then ExportFile.WriteLine Matches.SubMatches(0) 
22.
Next 
23.
     
24.
ExportFile.Close
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
Bitte warten ..
Mitglied: fireron
10.09.2010 um 08:12 Uhr
Hallo Dieter,

vielen lieben Dank für das VB-Skript! Echt super, ich habe das Skript angepasst und es funktioniert!

Ich danke dir vielmals!

Viele Grüße,
Tim
Bitte warten ..
Mitglied: 76109
10.09.2010 um 08:34 Uhr
Hallo Tim!

Gern geschehen Freut mich, wenn's funktioniert.

Den Thread könntest Du noch auf gelöst setzen

Gruß Dieter
Bitte warten ..
Mitglied: fireron
10.09.2010 um 08:35 Uhr
Nicht ganz. Eine Frage habe ich noch. Wenn ich zum Beispiel möchte, dass folgendes in der Export.txt steht:

(Die Sternchen habe ich nur wegen der Übersichtlichkeit eingefügt; ich meine den Text zwischen den Sternchen)

*
Dies ist die Export.txt. Hier sind alle Benutzer aufgeführt.
Login:Anton
Login:Berta
Login:Caesar
Login:Dora
Das waren die Loginnamen aller Benutzer.
*

Wie kann ich einmalig Text vor und nach den Namen (also ohne Schleife) schreiben und wie kann ich vor und nach jeden Namen Text (mit Schleife) schreiben?

Viele Grüße,
Tim
Bitte warten ..
Mitglied: 76109
10.09.2010 um 09:19 Uhr
Hallo Tim!

Das geht so:
01.
Const TextImport = "E:\Test\Import.Txt" 
02.
Const TextExport = "E:\Test\Export.Txt" 
03.
 
04.
Dim RE, Matches, Fso, ImportFile, ExportFile, Text 
05.
 
06.
Set RE = New RegExp 
07.
Set Fso = CreateObject("Scripting.FileSystemObject") 
08.
     
09.
Set ImportFile = Fso.OpenTextFile(TextImport) 
10.
Set ExportFile = Fso.CreateTextFile(TextExport) 
11.
     
12.
Text = ImportFile.ReadAll:  ImportFile.Close 
13.
     
14.
With RE 
15.
   .Global = True 
16.
   .IgnoreCase = True 
17.
   .Pattern = "<Login_name=""(\w+)"">" 
18.
End With 
19.
     
20.
ExportFile.WriteLine "Dies ist die Export.txt. Hier sind alle Benutzer aufgeführt." 
21.
 
22.
For Each Matches In RE.Execute(Text) 
23.
    If Matches.SubMatches.Count = 1 Then ExportFile.WriteLine "Login: " & Matches.SubMatches(0) 
24.
Next 
25.
   
26.
ExportFile.WriteLine "Das waren die Loginnamen aller Benutzer." 
27.
   
28.
ExportFile.Close
Texte können einfach mit dem Verkettungsoperator & zusammengefügt werrden z.B. "Text1" & "Text2" & "Text3" usw.

Gruß Dieter
Bitte warten ..
Mitglied: fireron
10.09.2010 um 11:21 Uhr
Dieter, ich danke dir vielmals!

Ein schönes Wochende wünsche ich dir!

Gruß Tim
Bitte warten ..
Mitglied: 76109
10.09.2010 um 12:19 Uhr
Hallo Tim!

Zitat von fireron:
Dieter, ich danke dir vielmals!
Gern geschehen
Ein schönes Wochende wünsche ich dir!
Danke, dass wünsche ich Dir auch

Gruß Dieter
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft Office
gelöst Excel 2010 Zellen mit bestimmten Inhalt mit Makro formartierten (5)

Frage von packmann2016 zum Thema Microsoft Office ...

Batch & Shell
gelöst BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

HTML
gelöst Mit HTML Datei eine Textdatei auslesen (7)

Frage von Maffi zum Thema HTML ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...