Formatovanie textoveho suboru (c++)
Formatovanie textoveho suboru (c++)
Zdravim, v skole sme dostali taku ulohu, ze mame spravit program, ktory otvori textovy subor a text zarovna (v jednom riadku bude napr. 30 znakov) a zalomi riadok...nooo a mam mensi problem pri zostaveni tohto programu...napisal som kod pre otvorenie textoveho suboru, ale absolutne netusim aka ma byt podmienka, aby v kazdom riadku bolo 30 znakov a aby sa text nerozdeloval napr. na konci riadka bude vychadzat slovo hojko a J uz bude 30 znak, tak to ko by uz malo byt na novom riadku, ale my musime spravit taku podmienku, aby nerozdelovalo slovo...dufam, ze som to napisal aspon trosku zrozumitelne a najde sa niekto kto by mi aspon trosku pomohol (viem, ze ulohy tu nikto za nikoho robit nebude ani o to nikoho neziadam, aby to cele za mna urobil, len aby ma trosku naviedol na to co by tam mohlo byt...
) budem vdacny za akukolvek radu 
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: Formatovanie textoveho suboru (c++)
budeš od tridsiateho znaku "cestovať" po znaku doľava, až kým nenájdeš medzeru. Pri tomto cestovaní si budeš nejakú premennú, ktorá bude mať počiatočnú hodnotu 30 znižovať o jedna. Keď nájdeš medzeru, nájdeš aj číslo ktoré určuje posledný znak za ktorým sa má useknúť. Táto premenná sa bude na 30 nastavovať pri každom novom riadku.
Re: Formatovanie textoveho suboru (c++)
dik 
Spravil som nieco taketo, len mam s tym problem, ze rozdeluje mi slova, ale podmienkou je, aby to nerozdelovalo. A nerozdeluje odseky zariadkovanim, co by zas malo. Pls poradte co tam treba este dopisat alebo opravit, neviem si s tym uz rady
. Dakujem za kazdu radu
.
Spravil som nieco taketo, len mam s tym problem, ze rozdeluje mi slova, ale podmienkou je, aby to nerozdelovalo. A nerozdeluje odseky zariadkovanim, co by zas malo. Pls poradte co tam treba este dopisat alebo opravit, neviem si s tym uz rady
Kód: Vybrať všetko
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
string line;
cout << "Zadajte nazov suboro: ";
char nazovSuboru[50];
ifstream subor1;
cin.getline (nazovSuboru, 50);
subor1.open(nazovSuboru);
if (subor1.is_open())
{
string text;
while ( subor1.good() )
{
text = "";
getline (subor1, line);
text = line;
int i = line.length();
for(int x = 0; x <=i - 1; x++)
{
cout << text[x];
if(x>0 && x%30==0)
{
cout << endl;
}
}
}
subor1.close();
}
else cout << "Subor neexistuje!\n";
return 0;
}Re: Formatovanie textoveho suboru (c++)
Kód: Vybrať všetko
string strBuff = ""; // vid nizsie
for(int x = 0; x < i; x++) // naco davas <= a odpocitavas od toho cisla ked ti to staci takto riesit
{
//cout << text[x]; // toto rieš cez "buffer"
if(text[x] != " ") {
strBuff += text[x];
}
else
{
cout << strBuff << text[x];
strBuff = "";
}
if(x>0 && x%30==1) // zacinas od nuly !! ked das modulo 30 tak ty uz budes mat 31 znakov napisanych preto == 1
cout << endl;
}
cout << strBuff;