Seite 1 von 2

Text-Datei

Verfasst: 22.06.2008 15:50
von Marc-21
Hi möchte gerne das eine Text-Datei komplett durch sucht wird .
Soweit habe ich das auch aber wenn ich sage er soll was bestimmtest finden hört es sofort auf und sucht nicht noch mal nach dem Suchwort es kommt mehrfach vor .
Wie bekomme ich es hin das er alle übereinstimmungen findet?
Und den im CLipbord speichert?


If ReadFile(0, "C:\test.txt")
While Eof(0) = 0
Code$+ReadString(0)
Wend
Code$ = Right(Code$, Len(Code$)-FindString(Code$, "http://download", 0)+1)
Code$ = Left(Code$, FindString(Code$, " STYLE=", 0))
MessageRequester("info", Code$)

Else
MessageRequester("Information","Konnte Datei nicht öffnen!")
EndIf

Kann einer helfen

Re: Text-Datei

Verfasst: 22.06.2008 16:04
von Kiffi
wenn Du ohnehin den gesamten Inhalt der Datei lesen willst, böte sich an,
dieses in einem Rutsch zu tun (ist schneller als das zeilenweise Lesen):

Code: Alles auswählen

FF=ReadFile(#PB_Any, "C:\test.txt")
If FF
  Code$ = Space(Lof(FF))
  ReadData(FF, @Code$, Len(Code$))
  CloseFile(FF)
EndIf
Marc-21 hat geschrieben:Und den im CLipbord speichert?

Code: Alles auswählen

SetClipboardText(Code$)
Grüße ... Kiffi

Verfasst: 22.06.2008 16:48
von Marc-21
danke

Verfasst: 24.06.2008 18:40
von Marc-21
noch eine frage wie stelle ich das an das er alle Übereinstimmungen findet.

Verfasst: 24.06.2008 18:47
von gnasen
Der gibt dir ja bei FindString() die Stelle zurück, an der er den String findet. Der letzte Parameter war glaube ich die Stelle, an der er anfangen soll. Also mal quick'n'dirty

Code: Alles auswählen

stelle = 0

repeat
  
  find = FindString(Code$, "http://download", stelle)

  if find
    debug find
    stelle = find + len("http://download")
  else
    break
  endif

forever
ist ungetestet, sollte aber funktionieren. find und stelle habe ich jetzt besser erstmal seperat aufgeführt (sollte leichter sein zu verstehen).

Verfasst: 24.06.2008 18:58
von Marc-21
danke

klappt, es wird angezeigt wo er es gefunden hat aber nicht den text mal schauen !

Verfasst: 24.06.2008 20:13
von Kiffi
Marc-21 hat geschrieben:aber nicht den text
dafür verwendest Du dann Left(), Mid() und Right().

Grüße ... Kiffi

Verfasst: 24.06.2008 20:16
von Marc-21
So weit habe ich es durch eure hilfe danke.
ER findet jetzt alle aber erhört nicht auf der letzte srting kommt immer wieder.
Könnt mir noch mal helfen verstehe das nicht im orginal geht es

Code: Alles auswählen

FF=ReadFile(#PB_Any, "C:\test2.txt") 
If FF 
  Code$ = Space(Lof(FF)) 
  ReadData(FF, @Code$, Len(Code$)) 
  CloseFile(FF) 
EndIf
stelle = 0 

Repeat 
  
  

Code$  = Right(Code$, Len(Code$)-FindString(Code$, "http://download", stelle)+1) 

 
  If Code$
    Debug Code$
   Delay(700)
  stelle = find + Len("http://download")
  Else 
    Break 
  EndIf 

ForEver

Verfasst: 24.06.2008 21:16
von gnasen
Marc-21 hat geschrieben:So weit habe ich es durch eure hilfe danke.
ER findet jetzt alle aber erhört nicht auf der letzte srting kommt immer wieder.
Könnt mir noch mal helfen verstehe das nicht im orginal geht es

Code: Alles auswählen

FF=ReadFile(#PB_Any, "C:\test2.txt") 
If FF 
  Code$ = Space(Lof(FF)) 
  ReadData(FF, @Code$, Len(Code$)) 
  CloseFile(FF) 
EndIf
stelle = 0 

Repeat 
  
  

Code$  = Right(Code$, Len(Code$)-FindString(Code$, "http://download", stelle)+1) 

 
  If Code$
    Debug Code$
   Delay(700)
  stelle = find + Len("http://download")
  Else 
    Break 
  EndIf 

ForEver
ich vermute mal, dass code$ immer einen wert zurückgibt

Verfasst: 24.06.2008 21:17
von Kiffi

Code: Alles auswählen

Repeat
  
  P1 = FindString(Code$, "http://download", P2)
  
  If P1
    
    P1 + Len("http://download")
    
    P2 = FindString(Code$, " STYLE=", P1)
    
    If P2 
      
      Debug Mid(Code$, P1, P2-P1)
      
    Else
      
      Break
      
    EndIf
   
  Else
    
    Break
    
  EndIf
  
ForEver
und bitte tu mir den Gefallen und finde mal heraus, wie dieser Code
genau funktioniert. Wenn Du den einen oder anderen Befehl nicht kennst,
dann stell den Cursor darauf und drücke <F1>. Dort findest Du weitere
Infos.

Grüße ... Kiffi