men da læser programmet jo bare filen til ende. Som en start, vil jeg gerne kunne nøjes med at læse f.eks. linje 3, men hvis det er muligt, vil jeg også meget gerne kunne læse værdier ind i variabler fra text-filen, hvor værdierne i text-filen f.eks. er adskildt af mellemrum.
Er der nogle kloge mennesker, som kan hjælpe mig? :-)
Faktisk er alle linjerne lige lange (hvis mellemrum må tælle med), så det er jo meget heldigt. Men det jeg tækner er, at når jeg undlader while(!database.eof()), så læser getline kun første linje i tekst-filen. Altså den ved hvor en linje starter og slutter. Så må det vel også kunne lade sig gøre, at få læst linje 2 ud til skærmen..? Eller er jeg helt galt på den?
Min tekst-fil ser således ud:
Varenummer Produktbeskrivelse á Pris Lagerplads ========================================================== 1001 noget 123 32 1002 andet 32 12
Første og anden linje vil jeg ikke have kopieret ind i programmet igen, mens 3. og 4. linje gerne skulle komme ind (individuelt).
Prøv at kør det her: (og håb mellemrummene ikke nogen gange er tabs)
std::string line; std::fstream database ("db.txt"); while (!database.eof()) { getline (database, line); std::cout << line << " next line start at " << database.tellg() << endl; ; } database.close();
Så kan du se hvor dine linier starter, efter at have læst de 2 første kan du se hvor selve data starter og når du har læst den næste (din 1001) er forkellen fra før længden af en linie. lad os sige at værdien efter 2 linier er 80 og efter den 3. er 110 så er hver data linie 110-80 lang. for at finde linie X i din tekst fil skal du så lave en
database.seekg(startoflines+X*lengthofdatalines);
hvor startoflines var 80 i det her eksempel og lengthofdatalines var 30.
Men det med at få nogle af værdierne ind i variabler igen, det forstår jeg ikke helt. Du siger at jeg skal bruge fscanf..? Det er især varenummeret jeg gerne vil have ind i variabler igen, men også meget gerne prisen, hvis det er muligt...
de korrekte typer og fejl behandling vil jeg overlade til dig.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.