Wo liegt denn jetzt die max. Größe bei FReadStr() ? [ERLEDIG

Sonstiges (nicht kategorisierbar)

Moderator: Moderatoren

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Wo liegt denn jetzt die max. Größe bei FReadStr() ? [ERLEDIG

Beitrag von Manfred »

Hi,

das hier:

Code: Alles auswählen

cBuffer        := FReadStr(nHandle,FSize(nHandle))
erzeugt das hier:

Code: Alles auswählen

FATAL ERROR LOG 
System-Error
SYS Thread-ID: 1052 
Module: MOM
Error Codes: EH: 4 Sub: 87(57) OS: 87 XPP: 40
Call Stack of Thread 1 (452):
@DC_GETLIST@I@EVENTLOOP(3847)
@DC_GETLIST@I@READGUI(3591)
DC_READGUI(95)
PHNARTULDKONVERT(114)
(B)main(130)
@DC_GETLIST@I@EVENTLOOP(4296)
@DC_GETLIST@I@READGUI(3591)
DC_READGUI(95)
MAIN(183)
Call Stack of GUI Thread (640):
Call Stack of Thread 3 (1052):
ARTULDKONVERT(146)
File: y:\video9\programm\shdstammdaten10.exe
TimeStamp: 20110215 17:44
End of FATAL ERROR LOG.
die Textdatei hat eine Größe von 2.013.982.108 Bytes. Max Größe überschritten?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von Martin Altmann »

Hmm,
was für ein Filesystem hast Du denn? FAT16? FAT32? NTFS?
Maximale Dateigröße 2GB bzw. 4GB?

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von Manfred »

Uff, da sagst Du was

da muß ich mal eben basteln. Das liegt auf einem Samba Server und der arbeitet unter EXT4. bzw. auf einem virtuellen Server. Das werde ich mal eben lokal ausprobieren auf NTFS.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von Manfred »

Macht auf einem lokalen LW unter Win XP und NTFS den gleichen Fehler.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von Martin Altmann »

Hm - OK.
Und warum willst Du alles in einem Rutsch lesen? Warum nicht häppchenweise in 4 KB-Blöcken (oder was auch immer)?
Steht an der Stelle, an der er abbricht, vielleicht ein chr(0)?

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von Manfred »

Sagen wir mal so,

das Thema hatten wir hier schon und dann kam halt diese Lösung dabei heraus.

Code: Alles auswählen

          IF ! lAbbruch
             oThread:nZaehler := 2                                              // weil Überschrift überspringen wird
             oPhnUpdate:db_oeffnen(,.F.,.T.,,.T.,,.T.)
             nHandle := FOpen(oSysPara:cProgrammPfad + "\download\phononet\artuld.txt",FO_READ)
             cBuffer        := FReadStr(nHandle,FSize(nHandle))
             oThread:nMenge := NumAt(Chr(10),cBuffer)
             nStelleLF      := AtNum(Chr(10),cBuffer,3,nStelleLF) + 1           // Überschrift übergehen
             DO WHILE .T.
                Sleep(0)
                oThread:nZaehler++
                IF oThread:nZaehler = oThread:nMenge
                   EXIT
                ENDIF
                IF ! oThread:lGestartet
                   IF oSysPara:oMessage:anzeigen("Konvertierung abbrechen?",.T.,"N")
                      EXIT
                   ENDIF
                   oThread:lGestartet := .T.
                ENDIF
                nLaenge := AtNum(Chr(10),cBuffer,1,nStelleLF) - nStelleLF          // berechnen, wie lang der Auszu sein muss
                cAuszug := SubStr(cBuffer,nStelleLF,nLaenge)
                aArray  := Str2Array(cAuszug)
                (oPhnUpdate:nArea)->(DbAppend())
                (oPhnUpdate:nArea)->v_titel    := aArray[10]
                (oPhnUpdate:nArea)->v_titel2   := Upper(aArray[10])
                (oPhnUpdate:nArea)->v_darstell := aArray[11]
                (oPhnUpdate:nArea)->v_fsk      := Val(aArray[45])
                (oPhnUpdate:nArea)->v_bestnr   := aArray[6]
                (oPhnUpdate:nArea)->fst1ekdat  := SToD(aArray[35])
                (oPhnUpdate:nArea)->aenderdat  := SToD(aArray[37])
                (oPhnUpdate:nArea)->streichdat := SToD(aArray[36])
                (oPhnUpdate:nArea)->ean_neu    := aArray[56]
                nStelleLF := AtNum(Chr(10),cBuffer,1,nStelleLF) + 1
             ENDDO
             oThread:lGestartet := .F.
             FClose(nHandle)
             oPhnUpdate:schliesse_Datenbank()
          ENDIF
          oPbStart:setCaption("Start")
          oPbEnde:enable()
          RETURN
********************************************************************************
FUNCTION  Str2Array(cString, cDelim )
          LOCAL aRet := {}
          LOCAL nX   := 1
          LOCAL nPos := 0
          LOCAL nLen
          LOCAL cRet

          DEFAULT cDelim TO ";"

          nLen := LEN( cString )
          cRet := SPACE(nLen)

          DO WHILE ( .T. )
             nPos := AT(cDelim, cString, nX)
             IF nPos > 0
                cRet    := SubStr(cString, nX, nPos-nX)
                AADD(aRet, cRet)
                nX    := ++nPos
             ELSEIF nX <= nLen
                cRet    := SubStr(cString, nX)
                aadd(aRet, cRet)
                exit
             ELSEIF nX > nLen
                aadd(aRet, "")
                exit
             ELSE
                exit
             ENDIF
          ENDDO
          RETURN ( aRet )
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von Tom »

Mmh. STACK der Anwendung hochsetzen? 2 GB in einem Speicherblock - geht das überhaupt? Müsste man mal ausprobieren, indem man in einer Schleife einen 2 GB langen String konkatiniert.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von Manfred »

Deswegen habe ich ja gefragt. Aber ich habe jetzt mit kleineren Dateien auch einen Futtsack. Vielleicht ist das ja doch Murks drin.

Das wird wieder eine lange Nacht. :angry5:
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von Martin Altmann »

Moin,
wie geschrieben - bei chr(0) ist Ende! Zumindest bei FReadStr() - Fread() geht!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von Manfred »

Ende mit xppFatal.log?

Aber wie schon erwähnt, ich habe gerade eine kleinere probiert und die liefert einen Leerstring. Jetzt geht die Sucherei wieder los.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von Jan »

Manfred hat geschrieben:Ende mit xppFatal.log?
Nein, Ende mit einlesen. Da ist der String dann zu Ende. Da Chr(0) erreicht.
Manfred hat geschrieben:Aber wie schon erwähnt, ich habe gerade eine kleinere probiert und die liefert einen Leerstring. Jetzt geht die Sucherei wieder los.
Leerstring ist Lesefehler oder Dateiende. Lesefehler? Warum sollte der bei einer kleineren Datei auftreten? :?: Wie groß ist denn "kleinere Dateien"?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von Martin Altmann »

Manfred,
was spricht denn dagegen, es mit FRead() häppchenweise zu probieren?

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von Manfred »

Hi Martin,

das habe ich schon hinter mir. So habe ich es am Anfang gemacht.

http://www.xbaseforum.de/viewtopic.php?f=32&t=4267

hier haben wir über das derzeitige System diskutiert.

Egal was ich nehme, es tauchen immer wieder neue Probleme auf. Erst habe ich es Schritt für Schritt gemacht, da war es ein Kampf mit der Unterteilerei. Dann habe ich es über die DelDbE gemacht da platzte der Rechner, weil er dicke Backen kriegte. Dann kam dieser Vorschlag und der hat irgendwie andere Mucken. Ich vermute einmal, da steht irgendwo Mist drin. Leider ist die Textdatei so groß, das sie mit keinem mir zur Verfügung stehenden Editor komplett zu öffnen geht um mal nachzusehen, wo das evtl. Mist steht.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von Martin Altmann »

Thema Editor: Nimm mal Textpad.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von Manfred »

Muß ich morgen nochmal testen. Der Editor öffnet die nicht. Angeblich Datenträger voll. Ich vermute da ist irgendwo was schrottiges drin. Morgen werde ich mal Zwischengrößen erzeugen und dann mal sehen, aber wann das losgeht.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von Martin Altmann »

:?:
Wie viel Platz ist auf Deiner Festplatte frei?
Und wie viel auf der Partition, auf der Deine Auslagerungsdatei liegt? Und wie hast Du die Auslagerungsdatei konfiguriert?

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von Herbert »

So, noch den Schweizer Käse dazu :razz:
@Martin: FreadStr liest per Definition bis zum ersten Chr(0). also sicher keine Fehler, höchstens zuwenig eingelesen. Bin aber deiner Meinung betreffend Aufteilen, weil:

@Manfred: gemäss deinem "was dabei herauskam" nimmst du den Inhalt ausenander und legst nach bestimmten Regeln den Inhalt in eine Datenbank ab.
Da sehe ich wirklich nicht ein, warum du den ganzen Haufen sofort einlesen willst. Ist die Datei mal offen, dann wirst du innerhalb eines Loops mit mehrmaligem Lesen (z.B. von crlf zu crlf mit FSeek(...,FS_RELATIVE) nicht wirklich Performance einbüssen, da das dbAppend wohl die meiste Zeit aufwendet, was du so oder so brauchst.
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von Rolf Ramacher »

Hi Manfred,

versuch es doch mal mit memoread()
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von Martin Altmann »

Herbert,
Herbert hat geschrieben:@Martin: FreadStr liest per Definition bis zum ersten Chr(0). also sicher keine Fehler, höchstens zuwenig eingelesen.
habe ich auch nicht behauptet, dass es ein Fehler sei. Sorry, wenn es so rüberkam. Steht so in der Hilfe - bei chr( 0 ) ist Ende mit Einlesen (das meinte ich nicht als Abbruch, sondern finis).

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von brandelh »

Hi,

wenn ich das richtig gelesen habe, will Manfred einen 2 GByte großen String einlesen !
Dazu kommen eventuell noch internes umkopieren und man ist ruki zuki über der maximalen
Speicheradressierbarkeit einer 32 Bit EXE (auch mit 100 GB Ram auf einem X2 64 Bit Win7 ;-)

Wenn wir so eine DBF machen dürften, wäre das ja schon ganz nett ;-)

Martin hat schon Recht, schaufle 4 KB Blocks in den Speicher und von dort weiter auf die Platte.
Gruß
Hubert
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von Herbert »

Oh, die Grösse hatte ich übersehen... Manfred nennt dies so zierlich "Textdatei".

Ist da nur Text drin?
Wieso wird diese Datei so gross?
Kannst du nicht was vorgängig extrahieren?
Schreibst du alles in eine einzelne .DBF rein?
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von Manfred »

Herbert hat geschrieben:Oh, die Grösse hatte ich übersehen... Manfred nennt dies so zierlich "Textdatei".

Ist da nur Text drin?
Wieso wird diese Datei so gross?
Kannst du nicht was vorgängig extrahieren?
Schreibst du alles in eine einzelne .DBF rein?
Ja, da ist nur Text drin.

Weil soviele Daten anfallen

Nein, die Datei bekomme ich so geliefert, an einem Stück.

Die wird konvertiert und ergibt ca. 900.000 Sätze
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von Tom »

FReadStr() wird 2 GB nicht beherrschen, da bin ich ziemlich sicher, und außerdem stoppt es eben, wie hier mehrfach angemerkt wurde, bei Chr(0). Wenn Du die Datei mal mit einem Hexeditor öffnest (z.B. Hex-Editor MX, Freeware), wirst Du wahrscheinlich 0-Character finden.

FileStr() aus den Tools liest bis zum Ende. Aber auch das wird nicht funktionieren, weil die entstehende, zusammenhängende Datenmenge im Arbeitsspeicher zu groß ist. Deshalb würde ich empfehlen, mit den Low-Level-Funktionen (FOpen(), FRead() - nicht FReadStr(), denn auch das stoppt bei Zero-Zeichen!) zu arbeiten und tranchenweise einzulesen. Das geht bei jeder beliebigen Dateigröße und schmiert auch nicht ab, wenn ASCII 0 vorgefunden wird.
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von AUGE_OHR »

Manfred hat geschrieben:Weil soviele Daten anfallen

Nein, die Datei bekomme ich so geliefert, an einem Stück.
kannst du die nicht gleich als DBF oder Excel Tabelle bekommen ... ?
gruss by OHR
Jimmy
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Wo liegt denn jetzt die max. Größe bei FReadStr() ?

Beitrag von Manfred »

Ich denke auch, dass es dahin gehen wird. Aber trotzdem ist die Datei ab einer gewissen Größe wohl im Eimer.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten