| |
|
|
Christof Neuß | allô gens,
peux mir quelqu'un chez cette Fehlermeldung weiterhelfen?
Exception EAccessViolation dans Modul ntdll.dll chez 0004A1B. Zugriffsverletzung chez Adresse 77A7A41B dans Modul 'ntdll.dll'. écrivons de Adresse 00000008
à qui entsprechenden Programmstelle wird une CSV-Dossier lire et bearbeitet. qui Einlesevorgang fonctionne sur "Blockread" et plus sur "Char$".
peux es son, dass qui Dossier simple trop grand ist (ici sommes es knapp 300 MB) ou bien trop viele Zeilen contient.
Hatte cela déjà la fois quelqu'un?
DANKE
eh, äh...mon Signatur stimmt pas plus. Muss je encore changement. cela Programme wurde avec XPROFAN X2 erstellt. |
|
|
| |
|
|
|
Jörg Sellmeyer | ici wäre une Widergabe Deines Codes sûrement sinnvoller gewesen. So une Fehlermeldung peux (peut-être) MS interpretieren. la hâte Du den Bereich grand genug défini? es Du avec Char$ sur qui Bereichsgrenze rausgegangen? |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 07.09.2011 ▲ |
|
|
|
|
Jörg Sellmeyer | je hab's justement getestet. à qui Taille liegt es pas. chez mir sommes aussi ca 1,5 mio Zeilen dans qui Dossier. KompilierenMarqueSéparationDeclare Datei$,b#,n&
Datei$ = "grossedatei.csv"
Print Datei$
n& = FileSize(Datei$)
Dim b#,n& + 1
Assign #1,Datei$
OpenRW #1
print Blockread(#1,b#,0,n&)
Close #1
Randomize'fehlte noch
WhileLoop 10
Locate 3,1
print Char$(b#,Rnd(n&),1000)'hier könnte es knallen, weil keine Überprüfung, ob über die Bereichgrenze gelesen wird.
Wend
Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 07.09.2011 ▲ | |
|
|
|
|
Christof Neuß | allô Jörg,
chez mir sieht cela ungefähr so aus: KompilierenMarqueSéparationDatenDatei$=$ProgDir+"Daten\\"+CSV_Datei$+".CSV"
DateiLaenge&=FileSize(Datendatei$)
Dim Bereich#, DateiLaenge&
DateiLaenge&=@BlockRead(DatenDatei$, Bereich#, 0, DateiLaenge&)'Damit ist DateiLaenge& = Anzahl gelesener Zeichen
DatenZeilen$=Char$(Bereich#,0,DateiLaenge&)
DatenZeilen$=RemoveNull(DatenZeilen$) Es volonté plusieurs CSV-Fichiers nacheinander bearbeitet. 'RemoveNull' ist une nProc, qui Nuller et Sonderzeichen aus qui Dossier entfernt. Welchen Grund gibt es, dass Du den Bereich avec n&+1 dimensionierst? Muss un marque plus possible son?
Zusatzfrage : j'ai maintenant qui Rückmeldung de einem Kunden, dass il qui Fehlermeldung "Zu wenig Arbeitsspeicher" bekommt (CSV-Dossier ist 660 MB grand). Bisher était je toujours qui attitude, cela a) 4 GB RAM ausreichen müssten et b) WindowsVista doch Plattenspeicher zum Auslagern utilise, si pas genügend RAM vorhanden ist. ou bien pourrait es autre chose son?
bof. je muss wohl encore la fois à qui Einleseroutine ran... Evtl. peux Je l' Blockread oui aufteilen et so kleiner Stückchen einlesen. là wird es wohl schwierig, cela Ganze après wieder richtig zusammen trop mettons.
DANKE seulement la fois et jusqu'à denne... |
|
|
| |
|
|
|
RGH | Es wäre hilfreich, si Du une kurzen lauffähigen (!) Code avec einer entsprechenden CSV-fichier zur Disposition stellst, avec qui on cela Problem nachvollziehen peux. Pour einem faute, den je pas chez mir nachvollziehen peux, peux je pas chercher.
"Ein pas reproduzierbarer Bug peux pas gefixt volonté!"
Salut Roland |
|
|
| XProfan X2Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 09.09.2011 ▲ |
|
|
|
|
Christof Neuß | allô Roland,
oui, ist déjà bien sûr. je muss den faute seulement la fois chez mir reproduzieren (peut). et si je ensuite pas weiterkomme, lieu je ici aussi la fois une entsprechenden Code un.
Es hätte oui son peut (cela était mon leise espoir), dass quelqu'un ähnliche Erfahrungen gemacht hat et z.B. juste dit hätte "Klar, cela peux pas marcher, là Fichiers sur 500 MB gar pas avec Blockread lire volonté peut." ou bien "Es liegt peut-être. gar pas à qui Dateigröße, mais à den enthaltenen marque. cela Sonderzeichen Ü führt zum Absturz beim Einlesen." ou bien...
quand même "Danke". je find's déjà toll, quoi on ici alles à Unterstützung bekommt. |
|
|
| |
|
|
|
| cela System muss qui 660 MB aussi am Stück vorrätig avons. Selbst si qui verfügbare grenier viel größer ist, sagt cela pas aus, dass so un großes freies Stück existiert. chez so Riesendateien empfiehlt es sich, vous stückchenweise abzuarbeiten. |
|
|
| |
|
|
|
RGH | ici peux je Frank seulement zustimmen:
si déjà qui Dossier binär gelesen volonté soll: Einen kleineren Bereich choisir et qui Dossier dans einer Boucle dans kleineren Happen einlesen et Travailler. là une CSV-Dossier mais une Textdatei, serait je proposer, qui Dossier avec Assgn/Reset trop ouvrir et Contribution# trop lesen et trop Travailler.
Eigentlich habe Je l' DIM-Befehl so programmiert, dass il une ordentliche Fehlermeldung ausgibt, si qui angeforderte grenier pas bereitgestellt volonté peux. il y a offensichtlich mais Situationen, wohin mir Windows avec einem Programmabbruch zuvorkommt.
Allerdings peux qui Windows-annonce aussi autre Ursachen avons.
Salut Roland |
|
|
| XProfan X2Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 09.09.2011 ▲ |
|
|
|
|
| Jo,
Christof Neuß (07.09.11)
écrivons de Adresse 00000008
sieht déjà équivoque z.B. pour einer gescheiterten String- bzw. Speicheroperation aus. Z.B. trop GlobalAlloc écrit M$: "If le function fails, le return value is NULL".
Incidemment... meint Windows avec "Schreiben de Adresse" etwa "Schreiben à Adresse" ou bien "Lesen de Adresse"? je peux es pas reproduzieren là je grad seulement Win7 sous den Fingern habe et qui Meldungen là quelque chose nochkomischer sommes.
@Christof: cet nProc qui Du là utilise... si Du vouloir ensuite peux je Dir qui nochmal deutlich optimaliser sodass vous z.B. nochmal 5 la fois plus rapide ist. |
|
|
| |
|
|
|
| RGH (09.09.11)
"Ein pas reproduzierbarer Bug peux pas gefixt volonté!"
Nichtmal par Zufall? |
|
|
| |
|
|
|
E.T. | |
|
| Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 10.09.2011 ▲ |
|
|
|
|
| Gib Dir une Ruck! |
|
|
| |
|
|