none
READ af ekstern fil med felter over 256 tegn

    Spørgsmål

  • Hej

    Jeg har et problem med et læse filer, hvor felterne i filen ”kan” være længere end 256 tegn.

     

    Det er på C5 version 2010 SP1 SQL, og helt konkret siger min syntaks følgende:

     

    STR 100 &FileName = ”TEST.TXT”

    STR 1000 &I[]

    SET &InFldDel = ”;”

    SET &InRecDel = ”\r\n”

    READ &FileName AS TEXT INTO (

      &I[1],

      &I[2],

      &I[3],

      &I[4],

      &I[5],

      &I[6],

      &I[7],

      &I[8],

      &I[9],

      &I[10],

      &I[11],

      &I[12],

      &I[13],

    …. Osv … 97 felter i alt

     

     

    Felt 9 i filen er 560 tegn langt men jeg kan ikke få den læst ind i variablen &I[9]… Den læser ind til 256 tegn og dernæst ”digter” den felt I[10] med de næste 256 tegn og I[11] med de sidste… Problemet er at 10 og 11 i virkeligheden er 9a og 9b forstået således, at der kommer 2 ekstra kolonner ind i variablen I[] og dermed bliver alle felter efter 9 indekseret 2 op… Det giver gevaldige problemer i den videre forarbejdning/fortolkning, som mit program udfører.

     

    Er det en begrænsning på Arrays ? eller det en kernefejl, begrænsning i READ ? … skal jeg bruge GET ? eller noget andet ?

     

    Sagt helt enkelt: Hvordan sikrer jeg mig at jeg kan læse felter filer, som er længere end 256 tegn ?

     

     

    Uha, jeg ville blive glad for et ”lille trick” , da jeg har en kunde, som ikke kan få læst leverandørfakturaer ind i deres c5 :-(

     

    Mvh

    Christian Juhl Petersen

    cjp@interconnect.dk

    13. oktober 2010 13:19

Svar

  • I teorien jo hvis kørslen ikke laver andet, men jeg tror ikke at der en mærkbar forskel, da jeg antager at du også indsætter poster i databasen (som tager relativt meget længere tid).


    Best Regards
    Martin B. Andersen [MSFT] SDE II
    Microsoft Dynamics C5
    =====================================================
    When responding to posts, please "Reply to Group" via your newsreader so that others may learn and benefit from your issue.
    =====================================================
    This posting is provided "AS IS" with no warranties, and confers no rights.
    18. oktober 2010 11:03

Alle besvarelser

  • Få leverandøren til at levere i oioxml i stedet. Det er meget nemmere at kode indlæsningen, og så har du styr på længden af felterne.

    Du får jo alligevel bøvl med et felt på 560 tegn, som skal deles op inden det smides i et kartoteksfelt, så du kan lige så godt gøre det rigtigt fra starten af.

    Mvh Maria

     

     

    13. oktober 2010 14:22
  • Tja... Det kunne man jo selvfølgelig gøre... dog ikke noget der lige sker "over night"... Så jeg er ude efter en måde hvorpå dette lader sig gøre... Problemet med lange felter rammer jo alligevel gennem OIOXML, hvis det viser sig at C5 ikke kan håndtere noget over 256 tegn. Har desuden prøvet at læse hele møget ind i een streng på 1000 tegn (loftet mig bekendt), men så går den i sort :-( Any help appreciated :-) Christian
    13. oktober 2010 15:11
  • Hej Christian.

    Et alphanumerisk (tekst) felt STR kan ikke være længere end 254 karakter i C5.

    Med venlig hilsen

    René Søberg Larsen

    http://c5håndværk.dk

    13. oktober 2010 17:40
  • du har sikkert ret, men hvorfor kan man så erklære STR variabler på STR 1000 ?

    Mvh

    Christian

    13. oktober 2010 20:39
  • Hej Christian

    Her og nu bliver du nok nødt til at lave en omskrivning af din kørsel til at bruge low-level file API'et i MAC.FILE.

    Der kan du læse filen tegn for tegn frem til næste semikolon/linie skift.

    Best Regards
    Martin B. Andersen [MSFT]
    SDE II Microsoft Dynamics C5
    =====================================================
    When responding to posts, please "Reply to Group" via
    your newsreader so that others may learn and benefit
    from your issue.
    =====================================================
    This posting is provided "AS IS" with no warranties, and confers no rights.


    Best Regards Martin B. Andersen [MSFT] SDE II Microsoft Dynamics C5 ===================================================== When responding to posts, please "Reply to Group" via your newsreader so that others may learn and benefit from your issue. ===================================================== This posting is provided "AS IS" with no warranties, and confers no rights.
    14. oktober 2010 12:36
  • ok. tak jeg vil prøve at lure lidt på den makro... men går det ikke ud over hastigheden hvormed den kværner filen igennem ?

    mvh

    Christian

    15. oktober 2010 21:39
  • I teorien jo hvis kørslen ikke laver andet, men jeg tror ikke at der en mærkbar forskel, da jeg antager at du også indsætter poster i databasen (som tager relativt meget længere tid).


    Best Regards
    Martin B. Andersen [MSFT] SDE II
    Microsoft Dynamics C5
    =====================================================
    When responding to posts, please "Reply to Group" via your newsreader so that others may learn and benefit from your issue.
    =====================================================
    This posting is provided "AS IS" with no warranties, and confers no rights.
    18. oktober 2010 11:03