[ miksin @ 26.04.2007. 12:30 ] @
Kada pretvorim celokupan text iz Memo-a u string na ovaj nacin Memo->Text.c_str() i snimim u fajl (fstream), uvek mi na kraju svakog reda u fajlu dopisuje neki znak. (u notepad-u pise neki kvadratic na kraju svakog reda).
Sta on to dopisuje i moze li se na neki drugi nacin sadrzaj celokupnog Memo-a snimiti u fajl (fstream)?
[ X Files @ 26.04.2007. 12:48 ] @
Taj kvadratic je KRAJ REDA, verovatno \n ako ne i \r\n.

To je sasvim u redu, i tako i treba da bude da bi vratio na staro stanje.

TMemo ima i metode TStrings::SaveToFile() i TStrings::SaveToStream(), pa ih mozes svakako upotrebiti
ako ti trebaju:

Memo1->Lines->SaveToFile()
Memo1->Lines->SaveToStream()
[ miksin @ 26.04.2007. 13:09 ] @
predpostavio sam ja da je to kraj reda, ali problem je u tome sto posle 5 snimanja imam 5 tih znakova na kraj pa mi jako smetaju.
btw kako da liniju po liniju iz jednog memo-a prebacim u drugi posto mi Memo2->Lines=Memo1->Lines prekopira sav text jednog u drugi memo kao metoda Text
[ itf @ 26.04.2007. 13:30 ] @
Code:
Memo2->Lines->Clear();
for(int i = 0; i < Memo1->Lines->Count; i++)
    Memo2->Lines->Add(Memo1->Lines->Strings[i]);

[ X Files @ 26.04.2007. 13:30 ] @
Citat:

predpostavio sam ja da je to kraj reda, ali problem je u tome sto posle 5 snimanja imam 5
tih znakova na kraj pa mi jako smetaju.

Pokaži kod koji koristiš za snimanje. Ako koristiš klasično C/C++ snimanje za TXT format,
onda će se svi CR pretvoriti u CR+LF. Ako koristiš BINARNO snimanje, to se neće dogoditi.

TMemo sadržaj svakako ne može biti 'kriv' za bilo koji problem, vec je potrebno korigovati
kod za snimanje, a vec sam rekao da imas i metode koje to rade bez ikakvih problema.


Citat:

btw kako da liniju po liniju iz jednog memo-a prebacim u drugi posto mi
Memo2->Lines=Memo1->Lines prekopira sav text jednog u drugi memo kao metoda Text

Nisam razumeo sta hoces da postignes?

Code:

// ovo prebacuje ceo tekst 
Memo2->Lines = Memo1->Lines;


Code:

// ovo takodje prebacuje ceo tekst
Memo2->Lines->Assign( Memo1->Lines );


Code:

// ovo dodaje tekst, mada se kao kroz maglu secam da je neko pominjao neke bug-ove
// metode AddStrings, ali svakako probaj:
Memo2->Lines->AddStrings( Memo1->Lines );


Code:

// ovako se vrsi iteracija kroz pojedinacne redove i dodavanje
for ( int i=0; i<Memo1->Lines->Count; i++ )
{
   Memo2->Lines->Add( Memo1->Lines->Strings[i] );
}


Code:

//Pristup pojedinacnim elementima (karakterima) unutar stringa je ovako:
Memo1->Lines->Strings[i][ovde redni broj karaktera, indeks ide od jedinice za razliku od kolona koje pocinju od nule]

[ itf @ 26.04.2007. 13:36 ] @
Citat:
Code:
//Pristup pojedinacnim elementima (karakterima) unutar stringa je ovako:
Memo1->Lines->Strings[i][ovde redni broj karaktera, indeks ide od jedinice za razliku od kolona koje pocinju od nule]



...mali ispravak ;)

Code:
Memo1->Lines->Strings[i][j]
... gdje j počinje od 1 a ne od 0



EDIT:
dodao sam CODE tag unutar QUOTE taga, jer se tag ITALIC poklapa sa "i" indeksom i tako izbugi iz liste, i pretvori ostatak teksta u Italic :)


[Ovu poruku je menjao X Files dana 26.04.2007. u 23:04 GMT+1]
[ miksin @ 26.04.2007. 14:03 ] @
Hvala ljudi puno ste mi pomogli
Snimao sam file preko fstreama pa je to bio problem, kada koristim SaveToFile Metodu sve radi super.
Sto se tice kopiranje linija memo-a Strings[j] je ono sto nisam znao, sad je sve ok ( ja sam pokusavao sa Lines[j] :( , a u helpu nisam obracao paznju na Strings[j] )
Hvala jos jednom
[ X Files @ 26.04.2007. 22:02 ] @
Citat:

Code:

Memo1->Lines->Strings[i][j]


Da, ne znam ni šta sam bio napisao:
i = 0 .. broj_redova-1
j = 1 .. broj_karaktera_u_i-tom_redu

Valjda tako treba.