/ 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
Formatteret tekst fra filer .?
Fra : !G!


Dato : 08-03-02 18:44

Er der nogle der kan fortælle mig lidt om, formatteret læsning fra en
textfil.. ( C-prog.)
Jeg vil lave et program med mulighed for at taste nogle information ind,
hvor denne info.
bliver gemt i en fil, så man ikke skal indtaste informationen næste gang man
åbner programmet.
Det kan fx være:
Navn: Alder
Donation
1. Morten Madsen 32
50.000 kr.
2. Grethe Jacobsen 58
420.000 kr
o.s.v

Når det så ligge gemt i en textfil eller anden .dat fil, så når man kalder
fx nr 1 på listen så
henter den navn alder og donation på denne fra filen og dette hentes ind i
en struct, så jeg kan bruge det
til senere udprintning på skærmen.

struct data
{
char name[30];
int alder;
float donation;
}record;

Men mit spm. er hvordan man man får teksten ud fra filen, så den kan bruges
til noget.
Den ligger vel i strenge, og afsluttes med \0..
Den skal bare kunne vide at når man kalder 1. så følger navn, alder og
donation med i samme kald.

Er der nogle der ved noget om dette, jeg har svært ved at finde noget
læsbart om dette emne indenfor
c programmering.

Venlig hilsen

!G!




 
 
Byrial Jensen (09-03-2002)
Kommentar
Fra : Byrial Jensen


Dato : 09-03-02 21:18

!G! <gugge@email.dk> skrev:
> Er der nogle der kan fortælle mig lidt om, formatteret læsning fra en
> textfil.. ( C-prog.)
> Jeg vil lave et program med mulighed for at taste nogle information ind,
> hvor denne info.
> bliver gemt i en fil, så man ikke skal indtaste informationen næste gang man
> åbner programmet.
> Det kan fx være:
> Navn: Alder
> Donation
> 1. Morten Madsen 32
> 50.000 kr.
> 2. Grethe Jacobsen 58
> 420.000 kr
> o.s.v

Jeg foreslår at du

- starter med at definere et filformat så dataene kan repræsenteres
på en entydig måde, f.eks. med en post med navn, alder og donation
adskilt med kommaer på hver linje.

- skriver ud med fprintf()

- læser en linje ad gangen med fgets() og så deler den op felter.
Til dette kan du bruge strchr() eller blot løbe strengen igennem
manuelt. Du kan også bruge strtok() eller fscanf(), men disse
funktioner kan være svære at bruge rigtigt.

> struct data
> {
> char name[30];
> int alder;
> float donation;
> }record;

En anden mulighed som er simpel, og som tilsyneladende vil virke, er:

size_t SkrevnePoster = fwrite (&record, sizeof(record), 1, stream);

size_t LæstePoster = fread (&record, sizeof(record), 1, stream);

Jeg anbefaler ikke at gøre dette fordi man bliver afhængig af hvordan
ens oversætter internt repræsenterer de forskellige datatyper og
konstruerer struct'er. Dvs. hvis det samme program er oversat med
flere forskellige oversættere, eller måske bare forskellige
indstillinger af samme oversætter, vil de ikke nødvendigvis kunne
læse hinandens filer.

Claus Rasmussen (09-03-2002)
Kommentar
Fra : Claus Rasmussen


Dato : 09-03-02 22:07

Byrial Jensen wrote:

> - starter med at definere et filformat så dataene kan repræsenteres
> på en entydig måde, f.eks. med en post med navn, alder og donation
> adskilt med kommaer på hver linje.

Jeg ville foreslå een information pr. linie. Altså f.eks:

Morten Madsen
32
50.000

Så sparer du dig selv for en masse bøvl med escape/parsning af skilletegn.

-Claus


Troels Thomsen (10-03-2002)
Kommentar
Fra : Troels Thomsen


Dato : 10-03-02 16:47

> Jeg vil lave et program med mulighed for at taste nogle information ind,
> hvor denne info.> bliver gemt i en fil,

Hvis nu det ikke skulle være ren C, men måtte være c++/mfc er der mange
muligheder.

I alle de mfc bøger/tutorials jeg har set er der eksempler der omhandler
præcist hvad du ønsker. Det går ud på at udnytte en document/view
arkitektur, således at hvis man følger nogle retningslinier, så får man en
frygtelig mængde funktionalitet forærende. Bl.a. kan du have flere af dine
'mini databaser' åbne af gangen , load , save , print preview, clibboard
etc.

På ingen måde erstatning for dit nuværende problem dog .. . . . . .
Desuden er windowsprogrammering generelt pisseirriterende kompliceret i
starten, - eller bliver det ved ?

mvh Troels



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

Månedens bedste
Årets bedste
Sidste års bedste