/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Skriv/læs en eller flere structs til/fra e~
Fra : Claus Nielsen


Dato : 20-04-01 09:56

Muligvis en simpel opgave, men tilgiv en C++ newbie... Jeg vil
egentlig gerne skrive en struct direkte til fil. Kan man det? Og så
vil jeg selvfølgelig også gerne læse en struct direkte fra en fil.

Jeg havde forestillet mig noget i stil med nedenstående...

struct TMinStruct
{
int Tal1, Tal2;
unsigned char Tekst[20];
};

int TForm1::GemStruct()
{
TMinStruct MinStruct;

MinStruct.Tal1 = 200;
MinStruct.Tal2 = 500;
MinStruct.Tekst = "Dette er en test";

// Opret en fil af type TMinStruct

// Gem MinStruct
// MinFil->Write(MinStruct);
}

int TForm1::HentStruct()
{
TMinStruct MinStruct;

// Opret en fil af type TMinStruct

// Hent MinStruct
// MinFil->Read(MinStruct);
}

Som I kan se, er der en del mangler i koden, som I forhåbentlig kan
være behjælpelig med at fylde ud? På forhånd tak!

Mvh, Claus

 
 
Claus Nielsen (20-04-2001)
Kommentar
Fra : Claus Nielsen


Dato : 20-04-01 09:58

>Muligvis en simpel opgave, men tilgiv en C++ newbie... Jeg vil
>egentlig gerne skrive en struct direkte til fil. Kan man det? Og så
>vil jeg selvfølgelig også gerne læse en struct direkte fra en fil.

Måske jeg lige burde nævne, at jeg bruger Borland C++ Builder 5.

Mvh, Claus

Jesper Boegholm (20-04-2001)
Kommentar
Fra : Jesper Boegholm


Dato : 20-04-01 10:39

Det nemmeste er nok at gøre sådan


int iFileHandle;

iFileHandle = FileCreate("file.dat");

FileWrite(iFileHandle, &MinStruct, sizeof(MinStruct));

FileClose(iFileHandle);



Så skriver du alle dataene der ligger i structen ned i filen, når du skal
hente dem igen gør sådan:

int iFileHandle;

if (FileExists("file.dat"))

{

iFileHandle = FileOpen("file.dat", fmOpenRead);

iBytesRead = FileRead(iFileHandle, &MinStruct, sizeof(MinStruct));

FileClose(iFileHandle);

}



"Claus Nielsen" <cn@hansen-telecom.dk> wrote in message
news:m0uvdtsbuqg776jaqr69hij5q7ktru4kb6@4ax.com...
> Muligvis en simpel opgave, men tilgiv en C++ newbie... Jeg vil
> egentlig gerne skrive en struct direkte til fil. Kan man det? Og så
> vil jeg selvfølgelig også gerne læse en struct direkte fra en fil.
>
> Jeg havde forestillet mig noget i stil med nedenstående...
>
> struct TMinStruct
> {
> int Tal1, Tal2;
> unsigned char Tekst[20];
> };
>
> int TForm1::GemStruct()
> {
> TMinStruct MinStruct;
>
> MinStruct.Tal1 = 200;
> MinStruct.Tal2 = 500;
> MinStruct.Tekst = "Dette er en test";
>
> // Opret en fil af type TMinStruct
>
> // Gem MinStruct
> // MinFil->Write(MinStruct);
> }
>
> int TForm1::HentStruct()
> {
> TMinStruct MinStruct;
>
> // Opret en fil af type TMinStruct
>
> // Hent MinStruct
> // MinFil->Read(MinStruct);
> }
>
> Som I kan se, er der en del mangler i koden, som I forhåbentlig kan
> være behjælpelig med at fylde ud? På forhånd tak!
>
> Mvh, Claus



Igor V. Rafienko (20-04-2001)
Kommentar
Fra : Igor V. Rafienko


Dato : 20-04-01 13:03

* Jesper Boegholm

> Det nemmeste er nok at gøre sådan


Det nemmeste er nok å bruke en metode som vil kompileres på alle
kompilatorer (er det noen spesielt galt med basic_ostream::write?)

<URL:http://secure.dinkumware.com/htm_cpl/ostream.html#basic_ostream::write>





ivr
--
The only "intuitive" interface is the nipple. After that, it's all learned.
(Bruce Ediger, bediger@teal.csn.org, in comp.os.linux.misc, on X interfaces.)

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

Månedens bedste
Årets bedste
Sidste års bedste