Top-Themen

Aktuelle Themen (A bis Z)

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

AutoIt - Textdatei auslesen

Mitglied: rub444n

rub444n (Level 1) - Jetzt verbinden

08.01.2014 um 21:49 Uhr, 5415 Aufrufe, 9 Kommentare

Hallo zusammen,

ich habe folgendes Problem und würde mich freuen wenn ihr mir helfen könnt.

ich will über AutoIT von einer Textdatei bestimmte Informationen auslesen:

Hier mal ein Beispiel für den Inhalt:

Überschrift1
a
b
c

Überschrift2
b
c
a

Überschrift3
c
b
x

Nun möchte ich jede Überschrift auslesen unter welcher der Buchstabe "a" steht und in z.B. eine Variable speichern.
Ich weiß zwar wie man eine Textdatei ausliest mit "fileopen" und "FileReadLine" aber wie man das nach diesen Kriterien machen könnte darauf komme ich einfach nicht.
Vielleicht könnt ihr mir ja weiter helfen es würde mich sehr freuen

Viele grüße

rub444n
Mitglied: colinardo
09.01.2014, aktualisiert um 09:43 Uhr
Hallo rub444n, Willkommen im Forum!
du müsstest schon noch etwas genauer spezifizieren was eine Überschrift bei dir ist bzw. wie diese von den anderen abgegrenzt ist denn das a steht in deinen Zeilen ja auch woanders:
d.h. hier:
Überschrift2
b
c
a
würde dann c in der Variablen landen.

Für solche Aufgaben sind Regular Expressions das Mittel der Wahl:
Folgendes matcht alles in der Zeile über der ein a am Anfang steht
01.
$f = FileOpen("C:\test.txt")
02.
$content = FileRead($f)
03.
$arr = StringRegExp($content,"(.*?)[\r\n]a",3)
04.
for $i = 0 to UBound($arr) -1
05.
	msgbox(0,"",$arr[$i])
06.
Next
07.
FileClose($f)
da aber wie gesagt hier auch das c gematcht wird sind weitere Spezifizierungen deinerseits nötig, oder war das jetzt nur ein Beispiel und a kommt kein weiteres mal vor ?

Grüße Uwe
Bitte warten ..
Mitglied: rub444n
09.01.2014 um 08:23 Uhr
Hallo Uwe,

du hast mein Problem erfasst.
Das "a" steht nämlich immer an einer anderen Position unter der Überschrift. Ist es überhaupt möglich eine solch spezielle Abfrage zu machen ?
Das einzige was die Überschrift eventuell absetzt ist dass sie immer mit "rt" anfängt und dahinter immer eine andere Zahl steht.
Also zum Beispiel rt-02 oder rt-05 usw.

Grüße

rub444n
Bitte warten ..
Mitglied: colinardo
09.01.2014, aktualisiert um 11:40 Uhr
wenn das so ist tausche Zeile 3 durch diese aus:
$arr = StringRegExp($content,"(rt-\d+.*?)[\r\n]+a",3)
Das a am Ende des Patterns musst du natürlich an deine Gegebenheiten anpassen.
Les dir auch mal das Regular Expressions Tutorial durch.

Grüße Uwe
Bitte warten ..
Mitglied: rub444n
09.01.2014 um 11:17 Uhr
Hallo Uwe,

ich wollte es gerade testen jedoch wird die Messagebox nicht mal aufgerufen.
Woran liegt das ?

Gruß rub444n
Bitte warten ..
Mitglied: colinardo
09.01.2014, aktualisiert um 11:39 Uhr
Zitat von rub444n:
ich wollte es gerade testen jedoch wird die Messagebox nicht mal aufgerufen.
Woran liegt das ?
dann stimmt dein Pattern(wie oben geschrieben) noch nicht, bzw. ist nicht an deinen tatsächlichen Text angepasst (das a am Ende des Pattern an deinen wirklichen Suchtext anpassen)
"(rt-\d+.*?)[\r\n]+Suchstring"
Achtung: hier sind Regex-Sonderzeichen zu beachten, wenn du Sonderzeichen wie Punkt / Backslash etc. verwenden willst !
Bitte warten ..
Mitglied: rub444n
09.01.2014, aktualisiert um 11:34 Uhr
hatte einen blöden Schreibfehler...

wenn folgendes in der Textdatei steht:
rt-1
a
b
c

rt-2
b
a

rt-3
c
b
x

dann erscheint in der MessageBox : "rt-1".
"rt-2" soll jedoch auch noch erscheinen da dort ja auch noch ein a steht. Ist das möglich ?
Bitte warten ..
Mitglied: colinardo
09.01.2014, aktualisiert um 12:03 Uhr
Zitat von rub444n:
dann erscheint in der MessageBox : "rt-1".
"rt-2" soll jedoch auch noch erscheinen da dort ja auch noch ein a steht. Ist das möglich ?
immer in der zweiten Zeile nach der Überschrift ? oder auch in der dritten 4,5 usw. ? Ist die leere Zeile vor einer Überschrift immer vorhanden ?
Bitte warten ..
Mitglied: rub444n
09.01.2014 um 11:56 Uhr
ich glaube fürs bessere Verständnis erkläre ich mal genauer worum es geht:
die rt-02, rt-03 usw. sind Server
die Buchstaben darunter stehen für die Usernamen welche eingeloggt sind auf diesen Servern
Nun will ich anzeigen auf welchem Server ich persönlich (in diesem Beispiel bin ich jetzt einfach mal User "a") eingeloggt bin.
Da die Formatierung wohl eine Rolle spielt hier nun die Formatierung der Textdatei um die es letztendlich geht (die Anzahl der eingeloggten User und dadurch die Anzahl der Einträge kann jedoch leider variieren was mein größtes Problem bei der Lösung ist).
Vielleicht hilft dir das weiter denn ich stehe total auf dem Schlauch

rt-02
b
rt-03
a
rt-04
x
rt-05
rt-06
rt-07
y
a
rt-08
h
j
rt-09
t
j
q
rt-10
x
t
rt-11
k
u
rt-20
a
o

Gruß rub444n
Bitte warten ..
Mitglied: colinardo
09.01.2014, aktualisiert um 12:52 Uhr
Denke für dich ist es einfacher wenn wir hier nach der klassischen Methode arbeiten:
01.
$f = FileOpen("C:\temp\test.txt")
02.
Global $username = "a"
03.
Global $server = ""
04.
Global $arrLoggedOn[1]
05.
$counter = 0
06.
While 1
07.
    Local $line = FileReadLine($f)
08.
    If @error = -1 Then ExitLoop
09.
    if Stringleft($line,3) = "rt-" then
10.
		$server = $line
11.
    Else
12.
		if $line = $username then
13.
			Redim $arrLoggedOn[$counter+1]
14.
			$arrLoggedOn[$counter] = $server
15.
			$counter = $counter + 1
16.
		Endif
17.
    EndIf
18.
WEnd
19.
for $i = 0 to UBound($arrLoggedOn) -1
20.
	msgbox(0,"",$arrLoggedOn[$i])
21.
Next
22.
FileClose($f)
Bitte warten ..
Ähnliche Inhalte
Entwicklung
AutoIT Dauerschleife
gelöst Frage von mrcljnffEntwicklung5 Kommentare

Moin, ich benötige einen befehl der mir mein AutoIt script, in eine Dauerschleife verwandelt. Selber habe ich den dafür ...

Windows 10
Lautstärke mit AutoIt ändern
Frage von HelloWorldWindows 103 Kommentare

Hey erstmal frohes neues Jahr euch Ich weiß ich schreibe spät Ich habe versucht mit AutoIT die Lautstärke meines ...

Entwicklung

AutoIT - Auf Eingabeaufforderung reagieren

Frage von veniplexEntwicklung6 Kommentare

Hallo zusammen, folgendes Problem: Ich habe eine AutoIT GUI. In einem Input gebe ich einen Befehl ein, z.B. . ...

Entwicklung

Autoit Script datei als Email anhang

gelöst Frage von bfbertiEntwicklung5 Kommentare

Hallo. Ich habe folgendes Problem: Der Drucker bei uns auf arbeit das FAX TO MAIL wegen der SSL verschlüsselung ...

Neue Wissensbeiträge
Datenschutz

SiSyPHuS Win10: Analyse der Telemetriekomponenten in Windows 10

Tipp von freesolo vor 3 StundenDatenschutz1 Kommentar

Alle die sich detailliert für die Datensammlung interessieren die unter Windows 10 stattfindet, sollten sich folgende Analyse des BSI ...

Sicherheit
Adminrechte dank Intel-Grafikkarte
Information von DerWoWusste vor 6 StundenSicherheit

ist das Advisory, welches beschreibt, welche Intel HD Graphics Modelle Sicherheitslücken haben, mit denen sich schwache Nutzer zu Admins ...

Internet

EU Urheberrechtsreform: Eingriff in die Internetkultur

Information von Frank vor 1 TagInternet1 Kommentar

Liebe Besucherin, lieber Besucher, warum erscheint das obere Banner in allen Beiträgen? Aus Protest gegen Teile der geplanten EU-Urheberrechtsreform ...

Windows Server
Windows Backup - FilterManager Event 3
Tipp von NixVerstehen vor 1 TagWindows Server

Hallo zusammen, ich bin kein gelernter ITler und auch beruflich nicht in dem Feld tätig. Wir setzen in unserem ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Glasfaserkabel verlegen und Anschlüsse setzen
Frage von LLL0rdLAN, WAN, Wireless20 Kommentare

Hallo Leute, ich muss demnächst ein Netzwerkkabel auf einer Länge von ca. 70 Metern verlegen. Das Netzwerkkabel soll dabei ...

Server-Hardware
Server Hardwareempfehlung für Projekt
gelöst Frage von heax22Server-Hardware12 Kommentare

Hallo zusammen, ich bin auf der Suche nach einer geeigneten Server Plattform um unter Hyper-V einen virtuellen Server 2016 ...

Basic
VBS soll alle Ordner auswählen, die im Startmenu angezeigt werden
Frage von Senseless-CreatureBasic12 Kommentare

Guten Morgen - gibt es eine Möglichkeit, per VBS das Startmenu in Win10 zu modifizieren? Ich beherrsche VBS mittlerweile ...

E-Mail
Wie funktionieren DNS Blacklisten?
gelöst Frage von WinLiCLIE-Mail12 Kommentare

Ich frage mich schon seit längerem, woher genau die Blacklisten für die Mailserver die Domains und Ips kennen die ...