Delphi
24 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Vím, že to sem asi nepatří, ale přesto: Mam v Delphi toto: procedure TForm1.Button1Click(Sender: TObject); var d:integer; s:char; k,slovo:string; begin slovo:=slova[i]; for d:=2 to length(slovo)-1 do begin k:=(Sender as TButton).Caption; s:=copy(slovo,d,1); if k=s then slovo[d]:=s; end; Ovšem u s:=copy(slovo,d,1); mi Delphi hlásí: "[Error] Unit1.pas(108): Incompatible types: 'Char' and 'String'". Ale já potřebuju nějak ten char dostat do toho stringu. Když dám s:string, tak hlásí chybu o řádek níž. Pls help
-
Delphi ma v tech zdrojacich strasnej bordel, neda se v tom vyznat, tak ti neporadim :] ale nejakou fci na konverzi do stringu to musi mit.
-
Ypkis: zase ma prijemnejsi prostredi jak nejaky za... VS... Johny, co je v prom slova a co je v i? A co to ma vlastne delat? Prijde mi to dost zmatene, urcite se to da napsat jinak. (-;
-
MzM: To určitě dá. Měla by to být šibenice. slova je konstantní pole, i je globální proměná.
-
VS sux, ale VB ma rulez IDE a mnohem prehlednejsi kod :)
-
Ypkis: Zavři držku!
-
lol, cože, klid, dyť snad zas tolik neřek :D
-
milster: Jenže on tady kecá úplný pitomosti, místo aby se třeba, omylem snažil pomoct.
-
V tom druhym příspěvku jenom reagoval na Marka..
-
v delphi se moc nevyznám, ale: s:=slovo[d]; nevim, jestli to bude makat...
-
Musím připomenout, že string není v pascalu nic jiného než pole znaků, a tudíž Majkls nenašel příčinu (což neznamená, že by byl blbej, jenom asi nedělá v pascalu tak často :D) Funkce copy požaduje dva stringy, což už je problém. Já bych prostě znak vložil takto: string[pozice] := char; A nebo se mi nezdá, že esku přiřazuješ výsledek operace copy... to se smí?
-
Jo, a ještě jedna rada - pojmenuj si tu proměnné rozumně člověče ;) Majkls to vyřešil, ale s, d, b, f, u a podobné názvy proměnných mě zmatou ;)
-
Majkls i Nipal maji pravdu. String (retezec) je pole znaku ukoncene "\0". Takze k jednotlivym znakum lze pristupovat pomoci indexu. Prikaz copy lze taky pouzit, ale ten vraci opet string nikoli char. Proto ta chyba. Pokud chces pracovat s charem, tak jedine pomoci indexu pole. Tedy misto s := copy(slovo,d,1); dej s := slovo[d]; Nejak ale nechapu smysl zdrojaku. Co to ma vlastne delat? Protoze z tohoto zdrojaku je na pohled vic chyb, nez prekladac zjisti. Např.: if k=s then slovo[d]:= s; Nevim proc se ma porovnavat k(string) a s(char). Prekladac to muze vzit jako v pohode, ale realne se tyto hodnoty nebudou nikdy rovnat. Protoze i kdyz jsou to stejne znaky, tak string ma v sobe jeste zakonceni \0 a to uz je odlisne. 2Ypkis: VB jsem uz davno vyhodil. Delphi je mnohem lepsi. Znam ty jejich vyvojaky. A popravde delaj vetsi bordel nez cokoli jinyho. Kdo se ma vyznat v tech jejich nesmyslnych hlasek. V VC++ pouzivaj nestandardni metody, ze z toho clovek cvokne. Nic ve zlym. Kazdy ma svuj vkus. Ty VB. Ja Delphi. BTW: Tetno tyden tu uz nejsem, takze jsem mimo. To vite zkouskovy na VS.
-
Tomik, string v delphi rozhodne neni ukonceny \0, to si pletes s C. Neco takoveho je i v Delphi, ale string to neni. VS: na vs c# me 'nadchlo' foldovani pomoci preprocesorovych #region #endregion.... fuj... predpokladam, ze button1click bude prilinkovany vsem tlacitkum, na kterych budou ruzna pismenka. Asi bych to delal tak, ze bych pouzil strpos() - v delphi je to tusim jenom pos(). To by se dalo pouzit. Neco jako pismenko = (sender as button).caption; pozice = pos(slovo, pismenko); if (pozice > 0) then begin ukazane_slovo[pozice] = pismenko; end; tak nejak by to mohlo fungovat...
-
MzM: tuším, že jsem někde čet, že kvůli kompatibilitě s C začali zakončovat stringy nulou i v delphi. Možná kecám. Nevěř mi :-))
-
Majkls: Nevěřím :) Jinak vyřešeno úplně jinak, ale nechal sem to ve škole. Dík za snahu.
-
Majkls: v delphi existuje cosi, co se chová stejně jako C stringy. Tuším PChar... Jestli se na konec stringu ukládá nula to nevím, ale string má na začátku délku...
-
Tak za a)VB bych s Delphi raději nesrovnával (sorry, koho urazím) b)Nějaký jazyk (Delphi) ve zdrojácích bordel nemůže mít, úhlednost kódu je věc programátora. Ona existuje taková věc (grafická úprava) - například odsazení každého vnořeného bloku o dvě mezery atd.
-
promluvil pan vyvojar..
-
2adamsOn: Proc dve mezery? Ja pouzivam i 5. a) Samozrejme neporovnavam VB a Delphi. Je mi jasne, ze to neni to same (vlastni zkusenost. Oba jsem pouzival). b) O bordelu jsem nemluvil o zdrojacich, ale o programu.
-
Tomik: Ja jsem reagoval spis na Ypkise: >>Delphi ma v tech zdrojacich strasnej bordel, neda se v tom vyznat, tak ti neporadim :] >>VS sux, ale VB ma rulez IDE a mnohem prehlednejsi kod :) a)Ohledne VB a Delphi s Tebou ale uplne souhlasim. Ja jsem taky pouzival oboji (nejdriv VB, pak Delphi). A chtel jsem rici, ze IMHO je Delphi nesrovnatelne lepsi. Puvodne jsem to napsal trochu ostreji a pak jsem to zmirnil a vyznelo to nejednoznacne. b)To jsem samozrejme zase reagoval na Ypkise. mezery - To je samozrejme, napr. v Delphi pouzivam dve, v C tri a jinde zase jiny pocet. Ze jsem reagoval na Ypkise je jasne z toho, ze se tu objevilo Oko (doufejme) Ypkisovo - Pat.
-
nebudu srovnavat delphi a VB pac neprogramuju. ja jen zase rypu, narazim na to ze si nekdo necha rikat vyvojar :)
-
Ja si rikam vyvojar?
-
PChar(String);