Veröffentlicht 6. November 200222 j Hallo, Gibt es irgendeine eingebaute Funktion, die das für mich erledigt? So nach dem Motto "setze Dateizeiger auf die Position, wo Zeichen oder String sowieso zum ersten Mal vorkommt?" Technician
6. November 200222 j Hilft Dir vielleicht: strchr() Remarks aus der MSDN: The strchr function finds the first occurrence of c in string, or it returns NULL if c is not found. The null-terminating character is included in the search. /* Search forward. */ pdest = strchr( string, ch ); result = pdest - string + 1; if( pdest != NULL ) printf( "Result:\tfirst %c found at position %d\n\n", ch, result ); else printf( "Result:\t%c not found\n" ); [/PHP]
6. November 200222 j Originally posted by Doham Hilft Dir vielleicht: strchr() Remarks Hilft mir leider nicht - da ich dazu im Endeffekt wieder alles einlesen muss... (da strchr ja auf einen String angewendet wird - nicht auf ein File)
6. November 200222 j Du mußt trotzdem mit einem kleinen Buffer arbeiten und die Datei Stück für Stück einlesen und durchsuchen. Ich wüßte nicht, daß es da etwas Fertiges gibt.
6. November 200222 j Originally posted by Crush Du mußt trotzdem mit einem kleinen Buffer arbeiten und die Datei Stück für Stück einlesen und durchsuchen. Ich wüßte nicht, daß es da etwas Fertiges gibt. ...dann wird mir wohl nix anderes übrig bleiben, als das ganze einzulesen
6. November 200222 j Originally posted by Technician Hilft mir leider nicht - da ich dazu im Endeffekt wieder alles einlesen muss... (da strchr ja auf einen String angewendet wird - nicht auf ein File) Eigentlich musst du nicht alles wieder einlesen du definierst einen String welcher die zu suchende Zeichenkette gehört. Dann fängst du vorne an mit dem ersten Zeichen in der Datei und vergleichst das mit dem ersten Zeichen in der zu suchenden Zeichenkette, wenn es übereinstimmt erhöhst du einen Zeiger auf das Zeichen in der zu suchenden Zeichenkette und liest das nächste Zeichen aus der Datei, stimmt das auch machste so weiter , stimmt es nicht dann setzt du den Zeiger wieder auf den Anfang der zu suchenden Zeichenkette und dann geht es weiter. Das ist eine recht primitive Lösung die aber funktionieren sollte. Es gibt noch eine bessere Lösung mit BitSet's aber ich komm momentan nicht darauf weil dann kann man das Problem in N lösen so wird es aber eine Lösung in N^2. Frank
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.