Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

RichEdit - kopiranje sadrzaja iz jednog u drugi

[es] :: C/C++ programiranje :: RichEdit - kopiranje sadrzaja iz jednog u drugi

Strane: 1 2

[ Pregleda: 3717 | Odgovora: 24 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Barni Kamenko
Novi Sad

Član broj: 206221
Poruke: 49
79.101.237.*



Profil

icon RichEdit - kopiranje sadrzaja iz jednog u drugi07.06.2009. u 16:17 - pre 181 meseci
Pokusavam da napravim program koji ce iz jednog txt fajla punog raznih podataka sastavljati ugovor tako sto menja neke reci u template.rtf fajlu. Pokusao sam sledece sto se cinilo kao logicno, ali Insert i Delete kao da ne rade, prodje kompajliranje ali ne obavi posao.... Jel zna neko zasto, i kako to ispraviti??


//kada se otvori txt fajl, on treba da se prikaze u
void __fastcall TForm1::OtvoriClick(TObject *Sender)
{
if( OpenDialog1->Execute() == True )
{ int c= 0;

rtf->Lines->LoadFromFile("template.rtf"); //richedit koji ispise sadrzaj template.rtf, i njega treba menjati
c = rtf->Text.Pos("zstpnk") ; //rec zstpnk treba zameniti sadrzajem richedit-a "Zastupnik"
rtf->Text.Delete(c,6); //ovo prodje kompajliranje, ali ne uradi nista
rtf->Text.Insert(Zastupnik->Lines->GetText(),Zastupnik->Text.Length()); //i ovo prodje kompajliranje, ali ne uradi nista

}
}

Molim za pomoc, gubim zivce :)))
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.dynamic.sbb.rs.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: RichEdit - kopiranje sadrzaja iz jednog u drugi07.06.2009. u 17:01 - pre 181 meseci
// NETESTIRANO
Code:

// ...
RichEdit1->Lines->LoadFromFile( ... );
// ...
AnsiString StaSeTrazi = "zstpnk";
AnsiString NoviTekst  = "Zastupnik";

TSearchTypes vrsta_pretrage = TSearchTypes() << stMatchCase;

int Pozicija = RichEdit1->FindText( StaSeTrazi, 0, RichEdit1->GetTextLen(), vrsta_pretrage );

if ( Pozicija != -1 )
{
    RichEdit1->SelStart = Pozicija;
    RichEdit1->SelLength = StaSeTrazi.Length();
    RichEdit1->SelText = NoviTekst;
    // ...
    RichEdit1->Lines->SaveToFile( ... );
}
// ...
 
Odgovor na temu

Barni Kamenko
Novi Sad

Član broj: 206221
Poruke: 49
79.101.237.*



Profil

icon Re: RichEdit - kopiranje sadrzaja iz jednog u drugi07.06.2009. u 17:42 - pre 181 meseci
Ne radi, ali kombinacija tvog i mog koda radi. Hvala puno, kasnije cu okaciti ispravan kod. Mada i dalje ne prebacuje nase znake ispravno.
ć pretvori u ?.... Jel postoji tu neka fora, ne bih da menjam nasa slova sa c,s i sl.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.dynamic.sbb.rs.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: RichEdit - kopiranje sadrzaja iz jednog u drugi07.06.2009. u 18:23 - pre 181 meseci
^
Pretpostavljam da treba:
Control Panel > Rergional and language options > Advanced > Language for non-unicode programs > Serbian Latin
 
Odgovor na temu

Barni Kamenko
Novi Sad

Član broj: 206221
Poruke: 49
93.86.77.*



Profil

icon Re: RichEdit - kopiranje sadrzaja iz jednog u drugi08.06.2009. u 23:16 - pre 181 meseci
Tacno, hvala. Evo i koda, ako neko bude imao slican problem

AnsiString StaSeTrazi = "zstpnk";
AnsiString NoviTekst = "Zastupnik";

Pozicija = rtf->Text.Pos("zstpnk") ;
if ( Pozicija != -1 )
{
RichEdit1->SelStart = Pozicija;
RichEdit1->SelLength = StaSeTrazi.Length();
RichEdit1->SelText = NoviTekst;
// ...
RichEdit1->Lines->SaveToFile( ... );
}
// ...
 
Odgovor na temu

Barni Kamenko
Novi Sad

Član broj: 206221
Poruke: 49
93.86.77.*



Profil

icon Re: RichEdit - kopiranje sadrzaja iz jednog u drugi09.06.2009. u 00:12 - pre 181 meseci
JOS JEDNO PITANJE: dosao sam do momenta kad treba da granam program u zavisnosti od odgovora korisnika. Posto nemam mnogo iskustva, narocito u builderu (do sada sam sve radio u konzolnim aplikacijama), ne znam kako da postavim pitanje u pop-up dialogu. pitanje treba da bude: zelite li opciju A ili opciju B, i treba da budu dva dugmeta, A i B, pa kad klikne na jedno da se programnastavi svojim smerom..
Malo sam konfuzno objasnio... :)
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
93.87.4.*

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: RichEdit - kopiranje sadrzaja iz jednog u drugi09.06.2009. u 06:20 - pre 181 meseci
Ako misliš na obične Yes/No/... dijaloge, imaš nekoliko solucija:

Pogledaj VCL Help u vezi sledećih funkcija, ima i primera:
MessageBox()
MessageDlg()

(Prva je API bazirana iako je wrapovana u VCL, a druga je čisto VCL bazirana)

Za detalje u vezi dijaloga, šaljem dva PDF fajla i jedan primer gde je urađeno nekoliko složenijih primera, pa čak i kako da uradiš svoj Message Box od nule.



Prikačeni fajlovi
 
Odgovor na temu

Barni Kamenko
Novi Sad

Član broj: 206221
Poruke: 49
212.200.65.*



Profil

icon Re: RichEdit - kopiranje sadrzaja iz jednog u drugi10.06.2009. u 18:58 - pre 181 meseci
Uspeo, hvala za pomoc.
Jos jedna stvar. Trebam u jednom txt fajlu da promenim sve '\' u 'Đ' ali ne mogu jer mi javlja gresku kad karakteru dodelim vrednost \

[C++ Error] Unit1.cpp(84): E2380 Unterminated string or character constant

jasno mi je zasto javlja ali ne znam kako da je izbegnem... Ako mi i ovde pomognete prestacu da smaram :)))
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
87.116.182.*

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: RichEdit - kopiranje sadrzaja iz jednog u drugi10.06.2009. u 19:34 - pre 181 meseci
Umesto:
'\'

Probaj:
'\\'

;)
 
Odgovor na temu

Barni Kamenko
Novi Sad

Član broj: 206221
Poruke: 49
77.46.166.*



Profil

icon Re: RichEdit - kopiranje sadrzaja iz jednog u drugi10.06.2009. u 21:32 - pre 181 meseci
Genijalno!!! :) Hvala po ko zna koji put :)
 
Odgovor na temu

Barni Kamenko
Novi Sad

Član broj: 206221
Poruke: 49
79.101.193.*



Profil

icon Re: RichEdit - kopiranje sadrzaja iz jednog u drugi12.06.2009. u 13:12 - pre 181 meseci
E SAD IMAM NAJSTRASNIJI PROBLEM!!!

Napisao sam program i na mom racunaru radi perfektno (AMD Athlon x2), bez greske (za sada). Medjutim na drugom racunaru (Intel celeron, preskace neke funkcije i javlja da float-ovi nisu u dobrom formatu...) Zasto to, kako to ispraviti??? Program je pisan u c++ borland builderu
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: RichEdit - kopiranje sadrzaja iz jednog u drugi12.06.2009. u 13:41 - pre 181 meseci
Možda imaš neku float članicu neke klase koja nije lepo složena na adresu deljivu sa 4. Da bi ovo proverio možeš ili da nateraš kompajler da lepo složi članice, korišćenjem #pragma pack direktive (bar je tako u VC++), ili da staviš sve floate svih klasa na početak klase, pre svih drugih članica. Da li možeš da debaguješ .dmp fajl kada ti pukne program (to jest da li program puca, ili se desi nešto drugo)? Da li možeš da lociraš taj float koji pravi problem?
 
Odgovor na temu

Barni Kamenko
Novi Sad

Član broj: 206221
Poruke: 49
212.200.65.*



Profil

icon Re: RichEdit - kopiranje sadrzaja iz jednog u drugi19.07.2009. u 16:34 - pre 179 meseci
Ispostavilo se da su local settings bili tako namesteni na tom racunaru da je '.' tretirana kao ',' i obrnuto. Namestio sam kako treba i sad je OK. Eto, mozda neko bude imao slican problem...
 
Odgovor na temu

Barni Kamenko
Novi Sad

Član broj: 206221
Poruke: 49
*.adsl-a-2.sezampro.yu.



Profil

icon Re: RichEdit - kopiranje sadrzaja iz jednog u drugi06.04.2010. u 17:04 - pre 171 meseci
Posle duže vremena, ozbiljan problem oko istog programa....

Do sada je sve super funkcionisalo: u jednom RichEdit-u se otvori unapred pripremljeni .txt fajl, i onda se odatle na zadata mesta u drugom RichEdit-u kopiraju potrebni podaci.

Problem je sledeci: RANIJE JE TAJ .TXT FAJL BIO LATINIČNI, A SAD JE ĆIRILIČNI I NE MOGU NIKAKO DA GA OTVORIM U RICHEDIT-u!!! Podesio sam sve na eastern europe fonts, u RichEdit mogu pisati ćirilicu, ali ne mogu otvoriti ćirilični fajl. Ima li tu jos neka caka za koju ne znam? Isprobavao sam i kodne strane, nista nije upalilo... Kada otvorim fajl, pojavi se samo jedan simbol "яю"

Koristim XP, u pitanju je Borland Builder 6, molim za pomoć ako neko ima ideju, hitna je stvar

 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: RichEdit - kopiranje sadrzaja iz jednog u drugi06.04.2010. u 17:38 - pre 171 meseci
Moraš da budeš precizan oko tog ćiriličnog formata txt fajla. Txt fajl je možda UTF-16 (što se u Microsoftu zove Unicode), možda je UTF-8, a možda je čak pisan na kodnoj strani 1251 (nadam se da nije). S druge strane tvoja aplikacija je možda Unicode, a možda i nije. Ukupno imaš 3x2=6 mogućih slučajeva. Sve će lepo da radi ako su i txt fajl i tvoja aplikacija Unicode (i ovu kombinaciju ti toplo preporučujem), i to pod uslovom da txt fajl nema takozvani BOM na početku fajla. Sve će raditi i ako je txt fajl pisan u onoj kodnoj stranici u kojoj se na tvom Windowsu izvršavaju non-Unicode aplikacije (ovo nije najsrećnije rešenje, ali bar radi). Za sve ostale kombinacije moraćeš da isprogramiraš nekakvu konverziju podataka (WideCharToMultiByte i MultiByteToWideChar) da bi RichEdit lepo video sadržaj txt fajla.
 
Odgovor na temu

Barni Kamenko
Novi Sad

Član broj: 206221
Poruke: 49
*.adsl-a-2.sezampro.yu.



Profil

icon Re: RichEdit - kopiranje sadrzaja iz jednog u drugi06.04.2010. u 17:50 - pre 171 meseci
Text fajl je Unicode, ali koliko vidim, Borlan ne podrzava unicode aplikacije.
Posto se program izvrsava na jednom racunaru, nije problem namestiti code page koji je potreban, ali meni to i dalje ne radi. Dakle, ja u Richtext MOGU sam da upisujem cirilicu, ali NE MOGU da otvorim cirilicni tekstualni file.

I sta je taj BOM? kao sto rekoh, meni se pojavljuje samo jedan karakter, da nije sve zbog tog BOM-a?

Nasao sam neke .pas fajlove koji navodno resavaju ove probleme:
http://arhiva.elitesecurity.or...kojima-treba-Unicode-za-Delphi
Jos samo da skontam kako se koriste :)

[Ovu poruku je menjao Barni Kamenko dana 06.04.2010. u 19:42 GMT+1]
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: RichEdit - kopiranje sadrzaja iz jednog u drugi06.04.2010. u 20:42 - pre 171 meseci
BOM je Byte Order Mark, to je fora da označi format teksta (UTF-8, UTF-16LE, UTF-16BE). Ono što je u Windowsu Unicode je zapravo UTF-16LE (Little Endian). Pogledaj na guglu za sve što ti nije jasno. Na Guglu sam i video da su slova яю zapravo BOM za Unicode (0xFF 0xFE), i to kada ta dva bajta čitaš u ćiriličnoj kodnoj stranici. Ne znam kako se uključuje Unicode na Borlandu, možda neko drugi zna, ali sigurno je prosto neka opcija.
 
Odgovor na temu

Barni Kamenko
Novi Sad

Član broj: 206221
Poruke: 49
*.adsl-a-1.sezampro.yu.



Profil

icon Re: RichEdit - kopiranje sadrzaja iz jednog u drugi07.04.2010. u 14:10 - pre 171 meseci
ipak cu ovako... mislim da je ipak tako najjednostavnoje

kretacu se kroz fajl karakter po karakter. ako hex vrednost karaktera odgovara odredjenom cirilicnom slovu, upisacu odgovarajuce latinicno slovo. to bi trebalo da radi...

e, sad, opet problem
isprobao sam na nekoliko karaktera i ispada da se hex vrednosti ne podudaraju iako u tabeli pise da je tako... sve radi ali
if (k[0] == 0x0426) k[0]='S';
jednostavno biva ignorisan.
Ima li nekog saveta?
Ima da batalim programiranje zauvek :)
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: RichEdit - kopiranje sadrzaja iz jednog u drugi07.04.2010. u 14:57 - pre 171 meseci
Prvo, to što radiš ne da nije jednostavnije, nego je sumanuto. Uostalom, kako ćeš da prevedeš ćirilična slova nj, lj i dž?

Ako ti neka oblast znanja treba da bi rešio problem onda savladaj tu oblast. Nemoj da kalemiš svoje postojeće znanje na svaki novi problem. Prvo, dobijaćeš polovična rešenja, a drugo tako ništa nećeš naučiti. Ako zapneš kod neke prepreke onda kopaj dublje i šire, traži pomoć, i napadni prepreku. Nemoj da odustaješ samo zato što ti se trenutno čini da je problem komplikovan. Ako si novajlija u programiranju onda prosto nemaš dovoljno znanja da zaključiš šta je stvarno komplikovano. Zato smo mi ostali tu.

Drugo, nešto nije u redu sa if primerom koji si dao. Prvo k[0] porediš sa short vrednošću, a onda mu dodeljuješ char vrednost. Čudi me da ti se kompajler ne žali. Kog je tipa k?

Treće, da bi lakše debagovao nikad ne stavljaj više instrukcija u istu liniju. U tvom slučaju instrukciju k[0]='S' stavi u sledeću liniju. Tako ćeš znati da li se ta instrukcija izvršava, ili if uslov uopšte nije ni zadovoljen.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: RichEdit - kopiranje sadrzaja iz jednog u drugi07.04.2010. u 15:00 - pre 171 meseci
Inače, koje je godište taj Borland što ga koristiš?
 
Odgovor na temu

[es] :: C/C++ programiranje :: RichEdit - kopiranje sadrzaja iz jednog u drugi

Strane: 1 2

[ Pregleda: 3717 | Odgovora: 24 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.