Deutsches AutoHotkey Homepage AutoHotkey Community
Wir helfen uns gegenseitig aus der Patsche
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Loopen und Parsen - bestimmte Dinge Suchen

 
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe!
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
macmewes



Anmeldedatum: 04.07.2006
Beiträge: 35

BeitragVerfasst am: Sa Okt 21, 2006 10:37 am    Titel: Loopen und Parsen - bestimmte Dinge Suchen Antworten mit Zitat

Moin, moin ...

ich hätte da mal ein Problem.

Code:

!e::

clipboard =
Send, {CTRLDOWN}c{CTRLUP}
ClipWait
;MsgBox, %clipboard%

; Zwischen "have" und "registered" ergibt Lizenznehmer.


Word01 = have
Word02 = registered

Loop, Parse, clipboard , %A_Space%
{
   IfInString, A_LoopField, %Word01%
   {
      ;MsgBox, %A_Index% is %A_LoopField%
      Start = %A_Index%
   }
   IfInString, A_LoopField, %Word02%
   {
      ;MsgBox, %A_Index% is %A_LoopField%
      Ende = %A_Index%
   }
}

Start += 1
Ende -= 1
Zwischen = %Ende%
EnvSub, Zwischen , %Start%


Ich möchte mir über ALT+E etwas in die Zwsichenablage kopieren und das als MsgBox rauskriegen, was zwischen den Worten "have" und "registered" steht.

Ich weiß aus obigem Code, wo ich anfangen und aufhören muß. Start stellt A_Index für den Anfang des Loops und Ende ist halt das letzte A_Index. Das kann durchaus unterschiedlich sein, also zwischen 1 und 5, manchmal 6 Begriffen.

Hier ist mein gedanklicher PseudoCode

Wenn A_Index=Start ist, dann übergebe den Variablen Lizenz%A_Index% den Wert %A_Loopfield% solange bis A_Index=Ende ist.

Nehmen wir an, daß Start=3 und Ende=5 und muß ich %Zwischen%-mal loopen und dann sollte am Ende

Lizenz3 = bla
Lizenz4 = fasel
Lizenz5 = blubb

stehen.

Kann mir jemand bei diesem Konstrukt helfen?

Vielen Dank

Martin
[/code]
_________________
bis dahin

Martin
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1896
Wohnort: Österreich

BeitragVerfasst am: Sa Okt 21, 2006 11:48 am    Titel: Antworten mit Zitat

Also ich würds über folgenden Ansatz machen:

Code:
Word1 = have
Word2 = registered

StartPos := InStr(Clipboard, Word1) + StrLen(Word1)
StringMid, Output, Clipboard, %StartPos%, % InStr(Clipboard, Word2) - StartPos
msgbox %output%
Dabei wird die Endposition des ersten Wortes genommen und bis vor den Anfang des zweiten Wortes ausgelesen...

Thalon
_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
macmewes



Anmeldedatum: 04.07.2006
Beiträge: 35

BeitragVerfasst am: Sa Okt 21, 2006 11:55 am    Titel: Antworten mit Zitat

Hallo,

perfekt ... Very Happy

Danke
_________________
bis dahin

Martin
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
BoBo
Gast





BeitragVerfasst am: Sa Okt 21, 2006 12:13 pm    Titel: Antworten mit Zitat

Oder StringSplit über das Leerzeichen. Nur der Form halber angemerkt. Thalons Beispiel würde ich jedoch selbst bevorzugen.
Code:
Loop, Read, MyFile.txt
{
   StringSplit, Field, A_LoopReadLine, %A_Space%
   If Field%A_index% = have ; das nächste Feld ist es!
     .
     .
     .
   }
Nach oben
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe! Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de