Jump to content
Incepat0r

Suprascriere linie fisier C++

Recommended Posts

De ex. am liniile:

linie a
linie b
linie c

si as vrea spre sa rescriu linia numarul 2 adica "linia b" cu o alta linie..sa zicem "linie x" iar in fiseirul text sa apara:

linie a
linie x
linie c

adaug la inceputul liniei un nr de ordine:

for(forward=fisier.begin();forward!=fisier.end();forward++,i++)
{
cout<<i<<":\t"<<*(forward)<<endl;
}
cout<<"numar linie: ";cin>>n;

citesc numarul de ordine iar linia coresunzatoare as vrea sa o suprascriu.Cum as putea face asta ca nu am nici o idee.

Link to comment
Share on other sites

Am eu o metod? dar.. e cam ineficient?.

Cite?ti tot fi?ierul într-un vector de caractere ( char buff[1000][1000]; )

?i de aici e relativ simplu.. modifici ce linie vrei in vectorul respectiv ?i scrii fi?ierul final.

Repet.. este ineficient dar sigur ?i u?or.

Mai este o metod? cu seek, dar nu am folosit-o niciodat?, caut? pe net.

Baft? :)

Link to comment
Share on other sites

pentru ce vrei, si cum vrei tu sa faci, o solutie ar fii urmatoarea, dar e valabila doar atat timp cat marimea liniei nu se schimba, adica daca pe linie ai 5 caractere, tu le inlocuiesti pe toate 5, sau o parte din ele, dar la final tot 5 caractere sa ai.

solutia mea ar fi sa folosesti membrii tellg,seekg, tellp,seekp din fstream.Creezi un feector care sa tina locatia inceputului fiecarei linii, eventual poti sa salvezi undeva si lungimea liniei. Iar cand vrei sa modifici o linie te folosesti de asta. Tine cont ca fisierul trebuie deschis in mod binar ca aceste functii sa functioneze corect. Mai multe informatii aici

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...