/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Ændret fillængde ved skrivning/læsning af ~
Fra : Frederik Jensen


Dato : 27-05-03 09:20

Hej Gruppe

Jeg er løbet ind i et lidt mystisk scenarie jeg ikke helt kan gennemskue.
Det drejer sig om et simpelt VB6 program der skriver og læser en fil.

Jeg har en string i hukommelsen. Vha. funktionen [Len] aflæser jeg længden
til X. Jeg skriver nu stringen til en fil vha. funktionerne [Open/Print].
Herefter indlæser jeg filen igen vha. [Open/Input]. Jeg aflæser længden af
stringen til X +2 (bytes). Gentages scenariet vil længden af det oprindelige
X blive aflæst til X + 4.

Jeg har en teori om at det er operativsystemet der tilskriver
filinformationer, men undre mig over den stiger for hver
skrivning/læsning/aflæsning.

Nogen der kan kaste lys over sagen?

pft

--
Frederik Jensen, Judex



 
 
Patrick Hayes (27-05-2003)
Kommentar
Fra : Patrick Hayes


Dato : 27-05-03 11:39

> Jeg har en string i hukommelsen. Vha. funktionen [Len] aflæser jeg længden
> til X. Jeg skriver nu stringen til en fil vha. funktionerne [Open/Print].
> Herefter indlæser jeg filen igen vha. [Open/Input]. Jeg aflæser længden af
> stringen til X +2 (bytes). Gentages scenariet vil længden af det
oprindelige
> X blive aflæst til X + 4.

Mit gæt er følgende:

Der bliver sat enten CR + LF eller EOF(ctrl-Z ?) i enden af din string når
den skrives til filen. Når du så læser hele filen, får du din slut-marker
med.

- patrick



Bjørnar Nilsen (27-05-2003)
Kommentar
Fra : Bjørnar Nilsen


Dato : 27-05-03 11:41

Hei

Har ikke sjekket dette, men kanskje er det dette som skjer i ditt tilfelle:
I filen blir det lagret (usynlige) tegn for "carriage return" og "line
feed".

Dette representeres med ascii-kode 10 og 13, og kan tilføres en streng ved å
bruke funksjonene chr(10) og chr(13).

Prøv å sjekk siste (alternativt de to siste posisjonene i strengen din - X)
etter at du har skrevet og lest fra filen.

eks:
iKode = chr(right(X, 1))

Hvis iKode er 10 eller 13, har du enten en "carriage return" og/eller en
"line feed" i strengen din (X).

mvh
Bjørnar Nilsen

"Frederik Jensen" <fj@judex.dk> skrev i melding
news:bav73d$rp7$1@news.cybercity.dk...
> Hej Gruppe
>
> Jeg er løbet ind i et lidt mystisk scenarie jeg ikke helt kan gennemskue.
> Det drejer sig om et simpelt VB6 program der skriver og læser en fil.
>
> Jeg har en string i hukommelsen. Vha. funktionen [Len] aflæser jeg længden
> til X. Jeg skriver nu stringen til en fil vha. funktionerne [Open/Print].
> Herefter indlæser jeg filen igen vha. [Open/Input]. Jeg aflæser længden af
> stringen til X +2 (bytes). Gentages scenariet vil længden af det
oprindelige
> X blive aflæst til X + 4.
>
> Jeg har en teori om at det er operativsystemet der tilskriver
> filinformationer, men undre mig over den stiger for hver
> skrivning/læsning/aflæsning.
>
> Nogen der kan kaste lys over sagen?
>
> pft
>
> --
> Frederik Jensen, Judex
>
>



Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408879
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste