06. august 2004 - 01:19Der er
10 kommentarer og 4 løsninger
Indlæsning af komma-fil, med ukendt filnavn.
C5 3.0
Jeg har lavet en lille kørsel, der overvåger en bestemt mappe, hvor et andet web-baseret program afleverer en komma-fil. Dette virker i princippet helt fint. Dog har jeg nu et ønske om at de filer der afleveres skal hedde noget forskelligt. Det eneste jeg kender i C5 er placeringen + extention.
Til Jasman, jeg vil helst undgå at omdøbe filerne til et bestemt filnavn, for derefter at indlæse dette, da der på sigt kan komme flere C5 Sessions, der kigger i mappen. Så tanken var mere om jeg kunne undersøge hvilke filer der lå i mappen, med en bestemt extention.
Til Pct, Ja, filen bliver fjernet så snart den er behandlet.
Er du bekendt med opsamling af data i et temporær kartotek ? Så kan jeg fortælle dig hvordan du kan lave et par programmer som kan bygge en liste over filer i et givent katalog i sådan et kartotek ?
Så kan du løbe listen af filnavne igennem og gøre ting ved filerne på den måde.
Problemet er, at jeg kun har en XAL så jeg kender ikke lige tabelnavnene i C5, så jeg kan ikke lige producere en komplet løsning, men principperne for at kode er jo de samme.
Synes godt om
Slettet bruger
06. august 2004 - 09:42#6
En løsning på at indlæse alle filer som findes i en mappe kunne være følgende:
STR 99 &Filnavn STR 99 &Path = 'c:\\mappe\\'
PROCESS 1 'MODE=CLEAR "COMMAND=DIR /b /a-d '+&Path+'*.* > '+&Path+'dir.txt' READ &Path+'dir.txt' AS TEXT INTO (&Filnavn) READ &Filnavn AS .... ... END END
det lyder helt fint, jeg kender også lidt til XAL, og midlertidige filer.
Så hvis du bare kalder det temporære kartotek for 'TempKart', så skal jeg finde ud af hvilket kartotek jeg benytter.
Min nuværende løkke til indlæsning ser ud som nedenstående:
--------- IF #FileExists(#VAR_RequestFile) THEN READ #VAR_RequestFile AS COMMA INTO (&PARM1, &PARM2, &PARM3, &PARM4, &PARM5, &PARM6, &PARM7, &PARM8, &PARM9) END #SolvexActions(&Parm1,&Parm2,&Parm3,&Parm4,&Parm5,&Parm6,&Parm7,&Parm8,&Parm9) #FileDelete(#VAR_RequestFile) ENDIF ---------
Problemet her er at min #VAR_RequestFile, har et fast defineret filnavn !!!
Hvis vi nu forudsætter at den kørsel du lige har listet hedder x, så tror jeg såmænd bare at du kan nøjes med at lave endnu en kørsel som hedder DIRSCANNER som indeholder følgende (Ja faktisk kun en linie): SET DIRECTORY("","C:\\mappe\\*.ext","XAL=x",8,0,1)
x skal så lige ændres til: IF #FileExists(&PARM) THEN READ &PARM AS COMMA INTO (&PARM1, &PARM2, &PARM3, &PARM4, &PARM5, &PARM6, &PARM7, &PARM8, &PARM9) END #SolvexActions(&Parm1,&Parm2,&Parm3,&Parm4,&Parm5,&Parm6,&Parm7,&Parm8,&Parm9) #FileDelete(&PARM) ENDIF
Så skal du bare køre kørslen DIRSCANNER
Directory funktionen i kørslen DIRSCANNER undersøger mappen c:\mappe for alle filer der har ekstension .ext og for hver funden fil, fyrer den så xal-kørslen X af, hvor det fundne filnavn bliver overført til x i variablen &PARM.
Jamen det er helt ok. Men husk lige at acceptere svaret ;)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.