Jeg anvender Delphi 2007 (og Delphi XE5). Jeg har ikke tidligere anvendt TFilestream, men nu har jeg behov for at kunne gemme records nemt og smidigt. Jeg har problemer med at anvende TFilestream sammen med typen Record. Problemet har tilsyneladende ikke noget at gøre med opbygningen af den anvendte record. En simpel code som nedenstående giver kun "sludder" i datafilen. Hvorfor går det galt.
Jeg har prøvet at søge i gamle spørgsmål og svar på Eksperten uden at kunne finde noget brugbart. Er der mon en barmhjertig sjæl som kan hjælpe mig?
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Tak for din respons og undskyld de MANGE stavefejl.
Jeg har ikke mulighed for i øjeblikket at prøve dit forslag. Umiddelbart ser det lidt underlig ud, at hver enkelt felt i recorden skal gemmes! Det virker ikke som nogen "elegant" løsning, men hvis det er vejen, må jeg jo gøre som du anviser. Problemet er, at jeg har "mange" felter af forskellige typer i min record!
Jeg har prøvet dit forslag. Compileren kender IKKE "ByteLength"; Jeg har prøvet med SixeOf() og Length() men jeg får exception fejl (Stream Write Error)!
Undskyld det forsinkede svar, har lige været ramt af lidt juletravlhed.
Nu ved jeg ikke, hvad du skal bruge det gemte til, men (mis?)forstod det bare sådan, at du skulle kunne læse filen i en teksteditor efterfølgende.
Er dette ikke tilfældet, er der ikke noget i vejen for at gøre det, som du gør.
Hvis du prøver at hente de gemte data ind igen med nedenståede kode, vil du se, at recordens data er identisk med de data du havde smidt i den, da du gemte.
var fsDataFile:TFilestream; Oplysninger:TRecOplysninger; Const DatafileName='Filename'; begin fsDataFile:= Tfilestream.Create(Datafilename,fmOpenRead); fsDatafile.ReadBuffer(Oplysninger,SizeOf(TRecOplysninger)); ShowMessage(Oplysninger.ForNavn + ' ' + Oplysninger.Efternavn); fsDatafile.Free; end;
@fedeko Tak for din interesse for mit problem. Du ledte mig trods alt på rette vej. Mit store (forståelses)problem er stadig om (og måske hvorfor ikke) der er mulighed for at gemme hele bufferen (recorden) i et hug? Du får point, hvis du vil fortælle mig hvordan jeg giver dig dem?
Du gemmer den i et hug, på den måde, som du skriver i dit oprindelige spørgsmål. Men da det er binære data, der gemmes, ser det mærkeligt ud i en teksteditor.
Så hvis du vil have mulighed for at læse filen selv, er det mig bekendt ikke muligt, uden at gemme hver enkelt string manuelt.
Hvis du kunne bruge mine indlæg til noget, lukker du ved at acceptere dette svar. Hvis ikke, accepterer du bare dit eget svar i stedet :-)
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.