|
| 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.)
| |
|
|