Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeichen aus Datei auslesen

Forumthread: Zeichen aus Datei auslesen

Zeichen aus Datei auslesen
26.03.2003 10:47:55
STC
Hallo!

Ich möchte sehr große Dateien (>= 10MB) nach einer Zeichenfolge durchsuchen. Damit das sehr schnell geht, lese ich über

<--CODE-->
Dim Daten as String * 65000
Dim i as integer

For i = 1 to Dateilänge Step 65000
Get #1, i, Daten
If Instr(Daten, "TEST") <> 0 then MsgBox "Gefunden!"
Next i
<--CODE-->

...das Problem an der Sache ist, obwohl ich den festen String auf 65000 gesetzt habe (damit das sehr schnell geht), werden nicht alle 65000 Zeichen in die Variable eingelesen, nur so um die 32644 Zeichen, der Rest sind Leerstellen. Wenn ich nun meine 65000 auf 32000 reduziere, dann geht das auch nicht immer, weil er den Übergang nicht immer genau trifft und dann alle Folgezeichen zerhackt.

Hat jemand evtl. eine bessere/sauberere Idee?

Danke

Christian


Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Zeichen aus Datei auslesen
26.03.2003 10:53:05
Harald Kapp

HAllo Christian,
das Problem liegt an der definition von "i as Integer". Integer nimmt ca +-32000 auf. Wenn Du die ganzen 65000 nutzen willst, dimensioniere "i as Long", dann sollte es funktionieren.

Gruß Harald

Re: Zeichen aus Datei auslesen
26.03.2003 11:11:56
gordon

Nachfrage interessehalber:

Wie stellst Du sicher, dass sich Dein Suchstring nicht über zwei eingelesene Daten-Strings erstreckt ?

.....................TE
ST.....................

Gruß
gordon

Anzeige
Re: Zeichen aus Datei auslesen
26.03.2003 12:30:11
Christian

Hi!

Jaaaa....ööööhh...

...man sollte den "Step" verkürzen, etwa so:

for i = 1 to Dateilänge step 65000 - Len(Suchzeichenfolge)

...sollte funktionieren.

Christian

Re: Zeichen aus Datei auslesen
26.03.2003 12:53:35
gordon

Hi Christian,

und dann den nicht durchsuchten Teil der nächsten Zeile voranstellen -
i.S.v.
nDaten = Mid(Daten,65000-Len(Suchstring)
If Instr(nDaten & Daten, "TEST") <> 0 then MsgBox "Gefunden!"
ggfls. vorhandene Zeilenumbrüche eliminieren !

Gruß
gordon



Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige