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

a kako ovo sada??

[es] :: C/C++ programiranje :: a kako ovo sada??

[ Pregleda: 1563 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

margita

Član broj: 61000
Poruke: 9
*.crnagora.net.



Profil

icon a kako ovo sada??15.06.2005. u 13:31 - pre 229 meseci
a kako da pogledam da li mi u richedit-u , kad unesem neki tekst ima barem jedno slovo ili vise koje je razlicite boje od crne??(kako mi je sve lakse nekako bilo u visual c-u...ili sam navikla...:-( )
pa kakva je to fora u vezi AnsiString-a, Stringa, pa onda vidim ima nesto sa string.c_str() (ili tako nesto...)???? u MS visual c-u je bilo samo STRING i onda uzmes:

int i;
char a[100];
i da bi mjenjali u tekstu nesto bilo je potrebno samo:
while(i<'\0')
{
pa nesto provjeravamo i radimo sa slovima...
if(a==...
pa onda...

a ovdje tako ne moze nekako....moze li mi ko to objasniti??:

kako kad imam tekst u richedit-u, da preko while petlje gledam svako slovo posebno? (racunajuci i praznine koje su isto nekakav znak)i da onda nesto provjeravam i radim...
a primjetila sam i funkciju neku kad napisem- ni jedna mi ne radi...stalno neke greske-nesto kao pogresna deklaracija ili nesto... evo uzmimo neku f-ju "saberi":

int saberi(int a, int b)
{
return a+b;
}
i nju hocu da stavim u Button1, a on uzima npr a=StrToInt(Label1->Caption) i
b=StrToInt(Label2->Caption) i onda pozove tu f-ju : saberi(a,b) - ovo nece da mi radi...mozda nisam nesto jos uradila, ili nisam f-ju zapisala na pravo mjesto??
oprostite sto sam se udaljila od teme, ali moram uraditi program u borlandu i mislila sam da ce sve nekako lakse ici, ali mi nista ne ide od ruke...
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.in-addr.btopenworld.com.



+4 Profil

icon Re: a kako ovo sada??15.06.2005. u 13:38 - pre 229 meseci
AnsiString je Borlandova KLASA za stringove, koja se koristi svuda u VCL-u. Ekvivalent u Visual-u bi bio CString.
c_str() metoda vraca pointer na "c"-ovski string (char *), ista takva metoda je u std::string klasi, znachi nishta neobichno oko toga.

Shto se tiche greshaka koje ti prijavljuje, postuj ovde kod i opis greshke, pa da vidimo.

Za RichEdit ce ti vec neko odgovoriti, nemam Borland pri ruci, ali verovatno cesh odgovore naci pazhljivim chitanjem help-a.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: a kako ovo sada??15.06.2005. u 16:07 - pre 229 meseci
Citat:

a kako da pogledam da li mi u richedit-u , kad unesem neki tekst ima barem jedno
slovo ili vise koje je razlicite boje od crne??

Na primer ovako:

Code:

for ( int i=0; i<RichEdit1->Text.Length(); i++ )
{
   RichEdit1->SelStart = i;
   RichEdit1->SelLength = 1;
   if ( RichEdit1->SelAttributes->Color != clWindowText ) // <--- OVDE MENJAS BOJU, ONO STO VIDIS CRNO ZAPRAVO JE clWindowText
   {
      ShowMessage( "Nije sve crno" );
      return;
   }
}
ShowMessage( "Sve je crno" );


Citat:

(kako mi je sve lakse nekako bilo u visual c-u...ili sam navikla...:-( )

Kako bi to uradila u VC-u?

Citat:

pa kakva je to fora u vezi AnsiString-a, Stringa, pa onda vidim ima nesto sa string.c_str() (ili tako nesto...)????

AnsiString je *isto* sto i String. Zapravo String je samo predefinisan AnsiString.
AnsiString je klasa za manipulaciju stringovima i *daleko* je jednostavnija za
upotrebu od onoga sto ti pruza standardni C jezik.
Npr:
Code:

AnsiString Text = "Zdravo"; // dodeljivanje
Text = Text + " Svete!"; // spajanje
ShowMessage( Text ); // prikaz
ShowMessage( Text[1] ); // prvo slovo! primeti da zbog Object Pascala indeksi pocinju od 1
ShowMessage( Text[ Text.Length() ] ); // zadnje slovo!

... a kada treba da takav string preneses u neku funkciju gde se trazi
char*, onda koristis Text.c_str().

Citat:

u MS visual c-u je bilo samo STRING i onda uzmes:
int i;
char a[100];
i da bi mjenjali u tekstu nesto bilo je potrebno samo:
while(i<'\0')
{
pa nesto provjeravamo i radimo sa slovima...
if(a==...
pa onda...
a ovdje tako ne moze nekako....moze li mi ko to objasniti??:

Sta ti konkretno treba? Pa isto je i u Borland C++ Builder...

Citat:

kako kad imam tekst u richedit-u, da preko while petlje gledam svako slovo posebno? (racunajuci i praznine koje su isto nekakav znak)i da onda nesto provjeravam i radim...


na primer ovako:
Code:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   for ( int i=0; i<RichEdit1->Lines->Count; i++ )
      for ( int j=1; j<=RichEdit1->Lines->Strings[i].Length(); j++)
         ShowMessage( RichEdit1->Lines->Strings[i][j] );
}


Citat:

a primjetila sam i funkciju neku kad napisem- ni jedna mi ne radi...stalno neke greske-nesto kao pogresna deklaracija ili nesto... evo uzmimo neku f-ju "saberi":
int saberi(int a, int b)
{
return a+b;
}
i nju hocu da stavim u Button1, a on uzima npr a=StrToInt(Label1->Caption) i
b=StrToInt(Label2->Caption) i onda pozove tu f-ju : saberi(a,b) - ovo nece da mi radi...mozda nisam nesto jos uradila, ili nisam f-ju zapisala na pravo mjesto??
oprostite sto sam se udaljila od teme, ali moram uraditi program u borlandu i mislila sam da ce sve nekako lakse ici, ali mi nista ne ide od ruke...

Kod mene tvoj kod radi savrseno:

Code:

int saberi(int a, int b)
{
   return a+b;
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   ShowMessage( saberi(3,4) );
}

Sta je problem sa kodom? Ne prijavljuje nikakve greske...
 
Odgovor na temu

margita

Član broj: 61000
Poruke: 9
*.crnagora.net.



Profil

icon Re: a kako ovo sada??16.06.2005. u 09:54 - pre 229 meseci
1:
pa dobro, nisam mislila za provjeravanje boje slova u MS VC-u, npr., nego nekih drugih stvari,npr da vidim u stringu da li je karakter broj:

i=0;
while(i!='\0')
{
if(a>='0' && a<='9')
{
printf("karakter %c je broj!",a); //na primjer samo...
}
else
{
printf("karakter %c nije broj!",a); //na primjer
}
i=i+1;
}

ma ovaj sam program lupila...mozda i nije totalno tacan, ali demonstrirala sta sam htjela u borlandu, znaci gledanje svakog slova u rich editu npr...pa morate priznati da je nekako lakse u MS VC-u...

2:
pa cekaj...jesam li dobro razumjela: u borlandu prvi index je 1?? znaci a[1] je prvi clan stringa a??

3:
pa nije mi se do sad pokazalo isto...(mozda je SLICNO??)
npr kad sam pokusala da izmanipulisem slovima u rich editu na MS VC-ovski nacin, on mi je gledao samo prvu rijec (znaci do prvog razmaka) - cini mi se da je tako nesto bilo...ALI DOBRO...OSTAJE VELIKA MOGUCNOST DA SAM JA NESTO POGRIJESILA!!!a i vidim u tvom kodu da se mora prvo ici po
for ( int i=0; i<RichEdit1->Lines->Count; i++ ) pa po
for ( int j=1; j<=RichEdit1->Lines->Strings.Length(); j++)da bi se pokazalo:
( RichEdit1->Lines->Strings[j] ); (slicno matrici)
(ZNACI MOZE SE I OVAKO(PORED PRVOG ODGOVORA) NAPRAVITI KOD ZA POSMATRANJE SVAKOG SLOVA POSEBNO??)

4:
a za f-ju...dobro, tu sam f-ju lupila, ja sam konkretno radila sa vecim i malcice komplikovanijim f-jama , pa imaju onda dvije mogucnosti: ili sam ja pogrijesila pisajuci te f-je, ILI JE PROBLEM BIO STO SAM NAPISALA:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int saberi(int a, int b) //"unutar" dugmeta
{
return a+b;
}
ShowMessage( saberi(3,4) );
}
znaci f-ju "unutar" dugmeta, a ne "spolja"
tj. iznad "void __fastcall TForm1::Button1Click(TObject *Sender)"
da nije u tome greska?? treba li "iznad" pisati funkcije??

nista...hvala vam puno SVIMA koji su mi odgovorili...nadam se da cu se snaci...ostaje mi samo jos da vidim to sa stringovima...e da...pa sam jos vidjela da ima i deklaracija String a; i string a; (znaci malo i veliko "S")????komplikovanje...komplikovanje... :-) cao!!
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.ptt.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: a kako ovo sada??16.06.2005. u 10:26 - pre 229 meseci
Citat:

pa cekaj...jesam li dobro razumjela: u borlandu prvi index je 1?? znaci a[1] je prvi clan stringa a??


Pazi, to je slucaj *samo* kod VCL objekata koji su proistekli iz Object Pascala,
kod koga indexi od pamtiveka pocinju od 1.

Code:

AnsiString Text = "Nešto";
Text[1] == 'N';
Text[ Text.Length() ] == 'o';


... ali ako imas niz AnsiString-ova

Code:

AnsiString Text[10];


... prvi element niza je Text[0], a zadnji Text[9], a njegovi pojedinacni elementi su:

Code:

Text[ 0 ][ 1 .. Text[0].Length() ] - Text[ 9 ][ 1 .. Text[9].Length() ]


kod obicnih stvari:
Code:

int i[10][10]; // <--- Svi indexi idu od NULE do DEVET



Citat:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int saberi(int a, int b) //"unutar" dugmeta
{
return a+b;
}
ShowMessage( saberi(3,4) );
}
znaci f-ju "unutar" dugmeta, a ne "spolja"
tj. iznad "void __fastcall TForm1::Button1Click(TObject *Sender)"
da nije u tome greska?? treba li "iznad" pisati funkcije??

Koliko se ja *razumem* u programiranje, funkcija unutar funkcije nije nikad mogla
i pitanje je da li ce ikad moci ;)

Citat:

ostaje mi samo jos da vidim to sa stringovima...e da...pa sam jos vidjela da ima i deklaracija String a; i string a; (znaci malo i veliko "S")????komplikovanje...komplikovanje... :-) cao!!

C++ pravi razliku izmedju malih i velikih slova...
AnsiString je isto sto i String, dok je string nesto trece. Ne koristi to trece ako ne
znas o cemu se radi!
 
Odgovor na temu

[es] :: C/C++ programiranje :: a kako ovo sada??

[ Pregleda: 1563 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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