|
| Binary Access og skip tegn Fra : Jens |
Dato : 19-03-02 22:44 |
|
Jeg bruger denne lille stump kode til at læse fra en fil i et fildellings
program
Nu vil jeg gerne have lavet en resume function men jeg er gået lidt i stå
Hvordan springer jeg over lad os sige 500.000 tegn over og begynder at læse
derfra ?
Open filsti For Binary Access Read As OpenedFileNbr
Do Until EOF(OpenedFileNbr)
If FileLength - Loc(OpenedFileNbr) <= PackageSize Then
PackageSize = FileLength - Loc(OpenedFileNbr) + 1
LastData = True
End If
Temp = Space$(PackageSize)
Get OpenedFileNbr, , Temp
If LastData = True Then
Temp = Mid(Temp, 1, Len(Temp) - 1)
End If
send Temp
Loop
send "filslut"
Close #OpenedFileNbr
Glæder mig til at høre fra jer !
Mvh
Jens
til@infojens.dk
| |
Rayman (20-03-2002)
| Kommentar Fra : Rayman |
Dato : 20-03-02 09:05 |
|
I din sætning:
Get OpenedFileNbr, , Temp
er den manglende parameter FilePos, jeg kan ikke huske om den er 0 baseret
eller ej, men her skriver du din position.
Mvh. Rayman
"Jens" <til@infojens.dk> wrote in message
news:3c97b10f$0$18485$edfadb0f@dspool01.news.tele.dk...
> Jeg bruger denne lille stump kode til at læse fra en fil i et fildellings
> program
>
> Nu vil jeg gerne have lavet en resume function men jeg er gået lidt i stå
>
> Hvordan springer jeg over lad os sige 500.000 tegn over og begynder at
læse
> derfra ?
>
> Open filsti For Binary Access Read As OpenedFileNbr
> Do Until EOF(OpenedFileNbr)
> If FileLength - Loc(OpenedFileNbr) <= PackageSize Then
> PackageSize = FileLength - Loc(OpenedFileNbr) + 1
> LastData = True
> End If
> Temp = Space$(PackageSize)
> Get OpenedFileNbr, , Temp
> If LastData = True Then
> Temp = Mid(Temp, 1, Len(Temp) - 1)
> End If
> send Temp
> Loop
> send "filslut"
> Close #OpenedFileNbr
>
> Glæder mig til at høre fra jer !
>
> Mvh
> Jens
> til@infojens.dk
>
>
| |
Jens (20-03-2002)
| Kommentar Fra : Jens |
Dato : 20-03-02 17:16 |
|
Er du sød og lave et lille eksempel ?
Jens
"Rayman" <rayman_dk@email.com> wrote in message
news:KoXl8.11497$ZI6.380053@news000.worldonline.dk...
> I din sætning:
> Get OpenedFileNbr, , Temp
> er den manglende parameter FilePos, jeg kan ikke huske om den er 0 baseret
> eller ej, men her skriver du din position.
>
> Mvh. Rayman
>
> "Jens" <til@infojens.dk> wrote in message
> news:3c97b10f$0$18485$edfadb0f@dspool01.news.tele.dk...
> > Jeg bruger denne lille stump kode til at læse fra en fil i et
fildellings
> > program
> >
> > Nu vil jeg gerne have lavet en resume function men jeg er gået lidt i
stå
> >
> > Hvordan springer jeg over lad os sige 500.000 tegn over og begynder at
> læse
> > derfra ?
> >
> > Open filsti For Binary Access Read As OpenedFileNbr
> > Do Until EOF(OpenedFileNbr)
> > If FileLength - Loc(OpenedFileNbr) <= PackageSize Then
> > PackageSize = FileLength - Loc(OpenedFileNbr) + 1
> > LastData = True
> > End If
> > Temp = Space$(PackageSize)
> > Get OpenedFileNbr, , Temp
> > If LastData = True Then
> > Temp = Mid(Temp, 1, Len(Temp) - 1)
> > End If
> > send Temp
> > Loop
> > send "filslut"
> > Close #OpenedFileNbr
> >
> > Glæder mig til at høre fra jer !
> >
> > Mvh
> > Jens
> > til@infojens.dk
> >
> >
>
>
| |
Tomas Christiansen (20-03-2002)
| Kommentar Fra : Tomas Christiansen |
Dato : 20-03-02 23:00 |
|
Jens skrev:
> Er du sød og lave et lille eksempel ?
Hvis du vil skippe de første 500000 bytes, kan du indføje en seek i
din kode:
Open filsti For Binary Access Read As OpenedFileNbr
Seek OpenedFileNbr, 500001
Do Until EOF(OpenedFileNbr)
Seek bestemmer (eller returnerer - det er også en funktion) hvor der
læses næste gang. Den første byte i filen har nummer 1.
-------
Tomas
| |
Jens (21-03-2002)
| Kommentar Fra : Jens |
Dato : 21-03-02 04:05 |
|
Tusinde tak Tomas
Det var lige det som jeg skulle bruge
Mvh
Jens
"Tomas Christiansen" <toc@blikroer.removethis.dk> wrote in message
news:a7b0on$1odt$1@news.cybercity.dk...
> Jens skrev:
> > Er du sød og lave et lille eksempel ?
>
> Hvis du vil skippe de første 500000 bytes, kan du indføje en seek i
> din kode:
>
> Open filsti For Binary Access Read As OpenedFileNbr
> Seek OpenedFileNbr, 500001
> Do Until EOF(OpenedFileNbr)
>
> Seek bestemmer (eller returnerer - det er også en funktion) hvor der
> læses næste gang. Den første byte i filen har nummer 1.
>
> -------
> Tomas
>
| |
Rayman (21-03-2002)
| Kommentar Fra : Rayman |
Dato : 21-03-02 20:28 |
|
prøv Get filehandle,50000,strbuffer
eller Get filehandle, filepos, strbuffer
Mvh. Rayman
"Jens" <til@infojens.dk> wrote in message
news:3c994dd3$0$88675$edfadb0f@dspool01.news.tele.dk...
> Tusinde tak Tomas
>
> Det var lige det som jeg skulle bruge
>
> Mvh
> Jens
>
>
> "Tomas Christiansen" <toc@blikroer.removethis.dk> wrote in message
> news:a7b0on$1odt$1@news.cybercity.dk...
> > Jens skrev:
> > > Er du sød og lave et lille eksempel ?
> >
> > Hvis du vil skippe de første 500000 bytes, kan du indføje en seek i
> > din kode:
> >
> > Open filsti For Binary Access Read As OpenedFileNbr
> > Seek OpenedFileNbr, 500001
> > Do Until EOF(OpenedFileNbr)
> >
> > Seek bestemmer (eller returnerer - det er også en funktion) hvor der
> > læses næste gang. Den første byte i filen har nummer 1.
> >
> > -------
> > Tomas
> >
>
>
| |
Tomas Christiansen (21-03-2002)
| Kommentar Fra : Tomas Christiansen |
Dato : 21-03-02 22:31 |
|
Rayman skrev:
> prøv Get filehandle,50000,strbuffer
> eller Get filehandle, filepos, strbuffer
Hvor vil du føje det ind i Jenses kode?
I hans tilfælde er det da mere indlysende at bruge Seek!
-------
Tomas
| |
Rayman (26-03-2002)
| Kommentar Fra : Rayman |
Dato : 26-03-02 13:47 |
|
Muligvis, men det er fordi hans design er ugennemtænkt. Generelt er det
meget nemmere blot at sætte positionen ind i et Get statement, da en binær
læsning ikke automatisk flytter filcursoren.
Mvh. Rayman.
"Tomas Christiansen" <toc@blikroer.removethis.dk> wrote in message
news:a7djeg$2ddk$1@news.cybercity.dk...
> Rayman skrev:
> > prøv Get filehandle,50000,strbuffer
> > eller Get filehandle, filepos, strbuffer
>
> Hvor vil du føje det ind i Jenses kode?
>
> I hans tilfælde er det da mere indlysende at bruge Seek!
>
> -------
> Tomas
>
| |
|
|