Forum » Programiranje » vhodno izhodne tekstovne datoteke...
vhodno izhodne tekstovne datoteke...
freserovski ::
A mogoče kdo ve, kako bi naredil, da bi mi pred vsako besedo prebrano iz datoteke zapisalo njeno dolžino?
C++
lp
C++
lp
Problemi so, problemi bodo! Kurc jih gleda!!
user4683 ::
Ne razumem čisto... lahko bolj natančno, kako so tvoje besede zapisane (saj ne, da bi bilo pomembno... samo tako, za predstavo).
ce ias recimo datoteko v obliki tegale sporocila, ki ga ravnokar pisem, bi za besedo smatral pac vse od enega presledka, do drugega (ter se locila). Torej moras najprej loadat datoteko, ter napisat tokenizer, ki bo vse skupaj razdelil na besede ... od presledka, do presledka, vmes pa stejes dolzino besede, v bajtih. To ni tezko, saj se premikas po en bajt...
torej, zacnes brati datoteko, stevec z dolzino resetiras na 0, nato se premaknes za bajt, povecas stevec, preveris ce je presledek. Ce je, je prve besede konec. Na izhod zapises pac tisti stevec, ter tvojo besedo (upajmo, da si si jo spotoma shranil v nek buffer... znak za znakom). Itd., itd...
ce ias recimo datoteko v obliki tegale sporocila, ki ga ravnokar pisem, bi za besedo smatral pac vse od enega presledka, do drugega (ter se locila). Torej moras najprej loadat datoteko, ter napisat tokenizer, ki bo vse skupaj razdelil na besede ... od presledka, do presledka, vmes pa stejes dolzino besede, v bajtih. To ni tezko, saj se premikas po en bajt...
torej, zacnes brati datoteko, stevec z dolzino resetiras na 0, nato se premaknes za bajt, povecas stevec, preveris ce je presledek. Ce je, je prve besede konec. Na izhod zapises pac tisti stevec, ter tvojo besedo (upajmo, da si si jo spotoma shranil v nek buffer... znak za znakom). Itd., itd...
rasta ::
Recimo na tako na hitro spisano kar v browserju (netestirano):
std::ifstream fajl("fajl.txt");
unsigned int count = 0;
std::string beseda = '';
while(fajl.good()) {
switch(fajl.peek()){
case ' ':
case '\t':
case '\n':
case '\r':
std::cout << count << " - " << beseda << std::endl;
count = 0;
beseda = '';
fajl.get();
break;
default:
count++;
beseda += fajl.get();
}
}
freserovski ::
jp, pač neko textovno datoteko naložiš, pol pa shraniš v drugo text datoteko, tako, da je pred vsako besedo napisana njena dolžina, za besedo se smatrajo črke, torej brez ločil in presledkov.
Sem delal nekaj, ampak mi ni uspelo tiste dolžine spravit pred besedo, vedno je blo za...
Sem delal nekaj, ampak mi ni uspelo tiste dolžine spravit pred besedo, vedno je blo za...
Problemi so, problemi bodo! Kurc jih gleda!!
freserovski ::
#include < fstream.h > void main(){ ifstream vhodna("krneki.txt"); ofstream izhodna("izhod.txt"); char znak; char beseda[15]; int stevilo=0; int i=0; while (!vhodna.eof()) { vhodna.get(znak); while(znak!=' '&&znak!='.'&&znak!=','&&znak!='?'&&znak!='!'&&znak!=':'&&znak!='\n'){ if(vhodna.eof())break; beseda[i]=znak; vhodna.get(znak); stevilo++; i++; } if(stevilo>0){ izhodna < < "(" < < stevilo < < ")"; i=0; while(i < stevilo){ izhodna < < beseda[i]; i++; } } if(!vhodna.eof()){ izhodna < < znak; stevilo=0; i=0; } } vhodna.close(); izhodna.close(); }
evo, tako sem to naredil, mogoce bo pa kdo rabo se kdaj ..., hvala za zgornje namige
Problemi so, problemi bodo! Kurc jih gleda!!
Zgodovina sprememb…
- spremenil: darh ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | branje iz datoteke c#Oddelek: Programiranje | 1648 (1377) | darkolord |
» | [C++] - Tolmačenje povedi in izvedba operacij nad števkamiOddelek: Programiranje | 3351 (2587) | jernejl |
» | [C++][Naloga] Tekstovne datoteke, realna številaOddelek: Programiranje | 4053 (3669) | Gundolf |
» | [C++][Naloga_polja]MIN in MAX polja, izpis za x.100 stevilOddelek: Programiranje | 2944 (2755) | snow |
» | C++ in datotekeOddelek: Programiranje | 1179 (1095) | Gundolf |