QT C++ qlist error bij standaard csv.

Alles over programmeren en development binnen de IT-wereld
Plaats reactie
Gebruikersavatar
Heronic
Elite Poster
Elite Poster
Berichten: 2746
Lid geworden op: 20 okt 2003, 16:41
Locatie: Bij mijn vrouw
Uitgedeelde bedankjes: 426 keer
Bedankt: 208 keer

Wanneer ik een csv wil inlezen krijg ik "qlist index out of range".
Heb me al heel de namiddag rotgezocht omdat die ene csv wel mooi werkt en de andere niet terwijl ze allemaal dezelfde structuur hebben.

Gelijkaardig probleem.
http://stackoverflow.com/questions/1612 ... ctor-in-qt

Nu heb ik pas ontdekt dat de csv files die rechtstreeks geexporteerd werden deze fout geven.
Als ik ze eens open en gelijk terug opsla met libreoffice werken ze wel gewoon. (Blijkbaar had ik die eerste initiele csv opgeslagen).

Iemand een idee wat er mis kan zijn met csv bestanden?
Ik vermoed dat het ergens iets met de eof te maken heeft.
“Insanity is my only means of relaxation "
My excuse? Being dunk. Whats yours?
Gebruikersavatar
cptKangaroo
Elite Poster
Elite Poster
Berichten: 3064
Lid geworden op: 18 dec 2004, 14:33
Locatie: 053 Aalst
Uitgedeelde bedankjes: 666 keer
Bedankt: 227 keer
Recent bedankt: 1 keer

In dat Stackoverflow voorbeeld zie ik een .split met 2 characters: rowOfData = ref_data.split("\n");
Ik weet niet of het voor C++ ook geldt, maar in .net doet de .Split() functie een beetje ambetant omdat je zowel op characters als op strings kan splitten en de compiler moeite heeft om een String te herkennen -- ik geloof dat een trucje als .Split(New String() {"\n"} ) het forceert maar eigenlijk wil ik gewoon aangeven dat je best eens checkt of hij werkelijk op "\n" als string split, of op "\" en "n" als afzonderlijke characters.

En eventueel ook eens proberen met splitten op ascii chr(10) of op "\r\n" (chr 13 + 10).
Gebruikersavatar
Heronic
Elite Poster
Elite Poster
Berichten: 2746
Lid geworden op: 20 okt 2003, 16:41
Locatie: Bij mijn vrouw
Uitgedeelde bedankjes: 426 keer
Bedankt: 208 keer

Ben even wat gaan proberen controleren en het verschil is dit :

De delimiter van de originele csv export is ;
terwijl ik , zoek natuurlijk.
En wanneer ik een originele csv export in libreoffice open en terug opsla worden die ; omgezet naar ,

Op die manier klopt de error van de index buiten bereik plots wel natuurlijk. En door die save was de verwarring groot genoeg omer niet meer aan uitte geraken. :bang:

Voorbeeld van een origineel :
("Gesprekskosten vaste lijn (32xxxxxxxx);12/04/2014 14:41;32xxxxxxxx;Brussel;05:37;0", "168063")
voorbeeld van een geopend en resaved met libreoffice :
("Gesprekskosten vaste lijn (32xxxxxxxx)", "16/04/2014 12:40", "32xxxxxxxxx", "Dendermonde", "00:16", "0", "39")

De laatste colon gaan ze wel een , gebruiken natuurlijk.
Gelukkig heb ik de laatste niet nodig.
“Insanity is my only means of relaxation "
My excuse? Being dunk. Whats yours?
Plaats reactie

Terug naar “Development”