Kjeksen Skrevet 30. mai 2005 Del Skrevet 30. mai 2005 (endret) Jeg holder på med å lage en slags telefonbok lignendes sak. Det jeg har laget hittil er at jeg kan legge til nummer og navn ved hjelp av std::ofstream til en textfil. Nummerene og navna blir lagret slik i txt fila. Per Hansen 12345678. Det jeg sliter litt med er og lage en funksjon som skal søke i text fila etter for eks. "Per", og visst den finner "Per", skal den vise kun den linja der "Per" var. Noen som har noen tips til dette? Eksempel på hvordan nummeren blir lagret: Per Hansen 12314234 Lars Jonsen 3443534 Kristoffer lol 3445355 Endret 30. mai 2005 av Kjeksen Lenke til kommentar
hishadow Skrevet 30. mai 2005 Del Skrevet 30. mai 2005 Enkleste er kanskje bare å bruke std:ifstream og lete serielt gjennom fila. Altså lese inn (fornavn, etternavn, nummer) og sjekke om det passer med søket. Hvis det gjør, så skriv ut info, ellers gi tilbakemelding om at det ikke finnes. Lenke til kommentar
Kjeksen Skrevet 30. mai 2005 Forfatter Del Skrevet 30. mai 2005 Enkleste er kanskje bare å bruke std:ifstream og lete serielt gjennom fila. Altså lese inn(fornavn, etternavn, nummer) og sjekke om det passer med søket. Hvis det gjør, så skriv ut info, ellers gi tilbakemelding om at det ikke finnes. Noe sånt jeg tenkte ja. Har klart å lese inn hele txt fila i en string variabel. Men visst jeg finner det jeg søker etter så skal jeg kun displaye den setningen som funnet var på Lenke til kommentar
hishadow Skrevet 30. mai 2005 Del Skrevet 30. mai 2005 (endret) Enkleste er kanskje bare å bruke std:ifstream og lete serielt gjennom fila. Altså lese inn(fornavn, etternavn, nummer) og sjekke om det passer med søket. Hvis det gjør, så skriv ut info, ellers gi tilbakemelding om at det ikke finnes. Noe sånt jeg tenkte ja. Har klart å lese inn hele txt fila i en string variabel. Men visst jeg finner det jeg søker etter så skal jeg kun displaye den setningen som funnet var på Det er jo lettere hvis du leser fra ifstreamen til variablene. bool match = false; ifstream fil("data.txt"); string fornavn, etternavn; int tlf; while(false == fil.eof() && true== fil.good()) { fil >> fornavn; fil >> etternavn; fil >> tlf; if "søkestreng matcher fornavn/etternavn etc.." { match = true; break; } } // hvis match, så gjør så... ed:fixe fixe2 - fail -> good Endret 31. mai 2005 av hishadow Lenke til kommentar
Kjeksen Skrevet 30. mai 2005 Forfatter Del Skrevet 30. mai 2005 okai, takker et rask spm. eof(), og fail(), hva gjør de? Lenke til kommentar
Mr.Garibaldi Skrevet 30. mai 2005 Del Skrevet 30. mai 2005 okai, takker et rask spm. eof(), og fail(), hva gjør de? .eof() sier ifra når du når end_of_file, og .fail() sier ifra hvis det du leser inn ikke er i riktig format... Du kan bruke while(fil){ <insert code here> } i stedet for, da streamen selv sier ifra hvis noe er galt... (Vet det gjelder for eof, og regner med at det gjelder for fail() også....) Lenke til kommentar
Kjeksen Skrevet 30. mai 2005 Forfatter Del Skrevet 30. mai 2005 (endret) okai, takker et rask spm. eof(), og fail(), hva gjør de? .eof() sier ifra når du når end_of_file, og .fail() sier ifra hvis det du leser inn ikke er i riktig format... Du kan bruke while(fil){ <insert code here> } i stedet for, da streamen selv sier ifra hvis noe er galt... (Vet det gjelder for eof, og regner med at det gjelder for fail() også....) Ok..takker Har løst problemet nå. Koden til hishadow ga meg en pekepinn og det funker utmerket. Konsoll verjsonen av telefonboken min funker utmerket nå ivertfall.. Endret 30. mai 2005 av Kjeksen Lenke til kommentar
hishadow Skrevet 31. mai 2005 Del Skrevet 31. mai 2005 (endret) Her er flere eksempler på hvordan du kan utvide programmet, ved å bruke klasser og operator overloading. De bruker std::stringstream i stedet, men burde funke å bytte dette til std::ifstream og std::ofstream. Også litt om feilsjekking(!) og formatering. Her er dokumentasjon for input/output stream. Endret 31. mai 2005 av hishadow Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå