Results 1 to 4 of 4

Thread: TJvCSVDataset fouten

  1. #1
    Yay: Student(je) af
    Join Date
    Jun 2003
    Location
    Harderwijk
    Posts
    2,621

    TJvCSVDataset fouten

    Hallo,

    Ik moet wat eenvoudige data opslaan en dacht hiervoor de CSVDataset component uit de JVCL te gebruiken.
    Echter twee dingen:

    1) Als ik een float-veld aanmaak en dit "met de hand" vul met een waarde (12.30), en vervolgens de CSV inlees in mijn programma, krijg ik in mijn DBEdit netjes "12,30" te zien. Als ik deze echter wil bewerken in de DBEdit, moet ik als decimal separator een komma gebruiken (12.40 kan niet -- moet 12,40 zijn) en vervolgens OnExit krijg ik een EConvertError "12.4 is not a valid floating point value".

    2) Soms krijg ik bij het aanklikken van een andere record in mijn DBGrid een EVariantInvalidArgError: "Invalid argument".

    Ik heb de indruk dat de JVCL CSV component een beetje (heel erg) buggy is.
    Suggesties voor de oplossing danwel voor componenten ter vervanging.

    (PS het moet in dit geval echt een plain text formaat zoals CSV zijn, dus a.u.b. geen opmerkingen als "Gebruik FB embedded" o.i.d.)
    My software never contains bugs. Perhaps just undocumented features.

  2. #2
    Je kunt eens in het component duiken en controleren hoe het omgaat met de decimalseperator. Mijn voorkeur zou zijn om floating points altijd op dezelfde manier op te slaan (bijvoorbeeld met een punt). De DBEdit zou moeten detecteren of het veld een float-veld is en zodoende de ingetypte waarde omzetten. Hiervoor moet dan de door jou ingestelde decimalseperator worden gebruikt.
    De Variant error is wat abstracter. Daar kan ik zo niets over zeggen.

    Misschien is het een beter idee om een memory-dataset te gebruiken? Sommige hiervan ondersteunen zelf een SaveTo/LoadFromFile en zo niet, dan is die in ieder geval eenvoudig te implementeren.
    1+1=b

  3. #3
    Je zou een ClientDataSet kunnen gebruiken, die van Dees is inclusief CSV mogelijkheden.
    Marcel

  4. #4
    Yay: Student(je) af
    Join Date
    Jun 2003
    Location
    Harderwijk
    Posts
    2,621
    Kijk, dankjewel Dees, dat is nou nog eens handig
    GolezTrol, in de JVCL variant zitten allemaal vage "StringToFloatUS" functies die het US formaat gebruiken (. voor decimalsep en , voor thousandsep).
    Was van plan om even LoadFrom/SaveToFile te schrijven, maar ik denk dat ik toch maar de NLDClientDataset gebruik.
    My software never contains bugs. Perhaps just undocumented features.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •