Français
Forum

Blockread liest CSV-Dossier pas ein; autre Codierung

 

Christof
Neuß
Salut,

toujours si Du denkst und dir maintenant wieder, venez de irgendwo un Stoppschild her...

si je mon CSV-Dossier avec einem Hex-Editor ouvre, sieht cela am Anfang so aus comment dans qui angehängten Dossier trop ersehen ist.

cet CSV-Fichiers venons de einem Großrechner aus dem centre des comptes et sommes wohl avec einem anderen Zeichensatz codiert. Excel, Windows-Editor et autre Programme faire eigentlich aucun Schwierigkeiten. Evtl. muss je qui ersten beiden marque effacer, mais sonst klappt cela.

je voudrais cet Fichiers - qui durchaus la fois 150 MB grand volonté peut - dans une Speicherbereich et ensuite dans un/plusieurs Arrays magasin, um cet ensuite weiterverarbeiten trop peut. qui "normale", zeilenweise Weg sur "Input #2, DateiInhalt$" funktioniert, ist mais très lente. Daher qui Versuch, qui Dossier avec "Blockread" vite dans une Bereich trop holen.

il y a aucun Fehlermeldung, mais beim ersten 00-Byte, alors pour dem "P" hört Blockread sur.

quoi peux je 1faire ou bien quelle autre elegante Solution gibt es, une CSV-Dossier ruckzuck trop importieren?

Vielen Dank et viele Grüße

Christof

71 kB
Bezeichnung:Screenshot_CSV_Datei
Hochgeladen:04.11.2016
Downloadcounter177
Download
 
Win10 16 GB RAM
04.11.2016  
 




Michael
W.
FF FE ist qui BOM pour UTF-16-LE.

Windows Unicode ist UTF-16 (LE)

WideString (v X3) peux den BOM erkennen et automatisch entfernen.

BlockRead doit ensuite avec qui alten Syntax avec Offset et Anzahl genutzt volonté. ensuite volonté qui données simple comme Datenblock betrachtet et peut simple lire volonté.
avec WideString et naturellement aussi avec "Declare wide stringvar" peux ensuite entier normal aus dem Bereich dans Variablen getextet volonté.
 
Alle Sprachen
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
04.11.2016  
 




Christof
Neuß
alors, cela funktioniert maintenant déjà la fois einigermaßen bien. mais je suis encore pas am but...
Var Dossier$="C:\_SEntw\_XProfanX3_1\_TestDB_mit_CSV\GGBIDA_KDU.CSV"
Var DateiLaenge&=FileSize(Dossier$)
MessageBox(Str$(DateiLaenge&),"Meldung",0)'112436764
Var DateiGelesen&=0
Var Ergebnis$=»
Déclarer Bereich#
Faible Bereich#, DateiLaenge&
Assign #1, Dossier$
OpenRW #1
DateiGelesen&=BlockRead(#1, Bereich#, 0, DateiLaenge& )
Fermer #1
MessageBox("Fertig avec Einlesen","Meldung",0)
'Ergebnis$=WideString(Bereich#, 0)             '--> dauert ewig
'Ergebnis$=WideChar(Bereich#, 0, DateiLaenge&)  '--> Fehlermeldung Zugriffsverletzung!
'Funktioniert so jusqu'à ca. 56.700.000
Ergebnis$=WideChar(Bereich#, DateiLaenge&-100,100)'--> Funktioniert! STRING ist alors vollständig là.
MessageBox(left$(Ergebnis$,300),"Meldung",0)'seulement, afin de voyons, si aussi quoi arrivé ist

qui Dossier ist alors sur 100 MB grand, qui je einlesen voudrais. Einlesen funktioniert aussi. et cela richtig vite.
qui anschließende Übertrag dans un normale String-Variable hakt allerdings et avec ca.

Hab's seulement avec WideString() probiert. cela Programme ist weder im Interpreter encore comme EXE zum Ende gekommen. Musste je toujours démolir.

avec WideChar() ca va irgendwie seulement jusqu'à knapp 57 Mio. marque. par-dessus venez une Fehlermeldung.

Habe ensuite la fois cela "Ende" qui Bereichsvariablen überprüft. Klappt. il y a alors alle données im grenier.

quelqu'un encore une concept en supplément?

Wiederum "Danke et Gruß"

Christof
 
Win10 16 GB RAM
06.11.2016  
 




H.Brill
qui interne Listboxliste pourrait peut-être. trop petite son.
Immerhin le son Aider :


Ab Version 11 peux vous jusque 260.000 Cordes aufnehmen
et verwalten


là du Version X3 trop avons scheinst, pourrait on encore
den Versuch avec
Move("FileToList", Dateiname$)

essayer.

dans diesem Zusammenhang wäre es intéressant, si le
beiden Move-Funktionen (FileToList et ListToFile) aussi
qui Codierungen comme optionalen paramètre berücksichten
könnten. on hat oui des Öfteren anders (UTF-8, UTF-16 usw.)
codierte Textdateien. ensuite pourrait on sich qui separate
Umwandlung sparen.

Wäre un Wunsch zum prochain Update.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
06.11.2016  
 




Michael
W.
je sais oui pas quoi là oui c'est ca ensuite avec den données passer soll.
alors simple la fois 2 Überlegungen:

1. Blockweise Einlesen.
exposition Dir simple la fois à, comment cela Zeilenende codiert ist. ensuite une grand Block einlesen et zurück jusque einem Zeilenende. alors Nombre de gelesenen marque réduire.
cela ganze Travailler et wieder wegschreiben.
après à qui neuen (peut-être. reduzierten) Stelle plus einlesen.
jusqu'à alles par ist.

2. Kombinieren avec Firebird ou bien SQLite
Blockweise Einlesen et juste dans qui banque de données.
et ensuite seulement dans qui banque de données Travailler.
là dürfen qui données presque beliebig grand volonté.

Es doit oui pas alles dans den RAM jusqu'à cette platzt.
si ensuite qui Bearbeitung pas satzweise avoir lieu soll, mais bestimmte Bereiche summiert volonté devoir ist une banque de données sowieso besser, là ensuite mittels Select très viel plus et ensuite aussi très viel plus rapide erledigt volonté peux.

Incidemment dachte je à une ECHTE Csv-Dossier. cet besteht aus mehreren Sätzen (Zeilentrenner inconnu, là Ausschnitt trop petite) et dedans qui Sätze aus mehreren Feldern (qui avec TAB \t getrennt sommes).
 
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
07.11.2016  
 




Christof
Neuß
allô Michael,

vielen Dank pour qui Hinweise, qui mir déjà bien weitergeholfen avons. aussi si je maintenant wieder längere Zeit avec anderen Dingen beschäftigt était, ist cela Thema encore aktuell pour mich.

Aufgrund qui einfachen Einbindung de Firebird, werde je avec cela travailler. but/devoir ist es, plusieurs (relativ grand) CSV-Fichiers (Tab getrennt, UTF-16) possible vite dans qui banque de données trop übertragen.

peut-être la hâte Du encore un paire Tipps pour mich (naturellement darf sich aussi chacun autre volontiers annoncer), comment je cela am besten hinbekomme?!

Vielen Dank et Salut

Christof
 
XProfan X3
Win10 16 GB RAM
14.09.2017  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

7.946 Views

Untitledvor 0 min.
Walter22.12.2022
Rschnett06.08.2022
ecki01.04.2019
Torsten Rümker02.01.2019
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie