Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
236to240
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
236to240
236to240
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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


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

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

Anzeige
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



305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige