[cpp]seekp

Pagina: 1
Acties:

  • THIJZEL
  • Registratie: Januari 2001
  • Niet online
hallo, ik heb een databaseje met klanten, nu wil ik daar dingen in veranderen, ik ga dan(iig probeer) naar de goede positie te gaan mbv seekp, alleen dan helpt ie heel me database om zeep als ik dan ga schrijven..
Ik ben er al achter dat de manier waarop ik seekp gebruik dat hij dan steeds maar een caracter verspringt terwijl ie per grootte van me record zou moeten verspringen..

hoe doe ik dit??

de struct klanten..
code:
1
2
3
4
5
6
7
8
9
10
struct klanten
    {
    char knaam[40];
    char kadres[40];
    char plaats[30];
    char telnr[10];
    int debcre;
    long knr;
    long banknr;
    };

[code]
teller=0;
file.open("klanten.dat", ios::out|ios::binary);
while(!(teller>klantnummer))
{
long pos;
teller++;
if (teller==klantnummer)
{
file.write((char*)&klant,sizeof(klant));
getch();
}
else
{
file.seekp(pos+1);
//f.read((char *D &klant, sizeof(klant));
}
}
[code]

  • THIJZEL
  • Registratie: Januari 2001
  • Niet online
ik ben al een stukje verder(schoot ineens een goed id in me hoofd..

alleen nu verdwijnen alle andere klanten uit me database..
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
teller=0;
        file.open("klanten.dat", ios::out|ios::binary);
        while(!(teller>klantnummer))
        {
            long pos;
            teller++;
            if (teller==klantnummer)
            {
                file.write((char*)&klant,sizeof(klant));
                getch();
            }
            else
            {
                file.seekp(sizeof(klant)*(klantnummer-1),ios::beg);
                //f.read((char *) &klant, sizeof(klant));
            }
        }

edit: ff proberen, wat de file.open wist natuurlijk helemaal klanten.dat (ios::ate toeveoegen..)

  • THIJZEL
  • Registratie: Januari 2001
  • Niet online
ok, het is me gelukt :P met al die hulp.. los me eigen posts op..haha

maareeh ik zit met een nieuw stom probleem...


hij moet eigenlijk als ik op enter druk(niks invoer) die strcpy niet uitvoeren.. hoe kan ik dat het beste oplossen? want ik neem aan dat in Temp een carridge return staat..
code:
1
2
3
cout<<"geef het telefoonnummer in: ";
    cin.getline(temp,sizeof(temp));
    if (temp){strcpy(klant.telnr,temp);};

  • whoami
  • Registratie: December 2000
  • Laatst online: 07-09 19:30
Als je niks invoert, dus gewoon [enter] doet, zal er volgens mij geen carriage return in tmp komen te staan, maar '\0' (denk ik).

https://fgheysels.github.io/


  • THIJZEL
  • Registratie: Januari 2001
  • Niet online
hoe kan ik dan het beste regelen, nu voer ie strcpy nog steeds uit

ook na if (1(temp=="\0")){blaat;}