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

TMemo selekcija od prve do zadnje riječi

[es] :: Pascal / Delphi / Kylix :: TMemo selekcija od prve do zadnje riječi

[ Pregleda: 1974 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

saxa
nikolina zorica
student
zagreb

Član broj: 266531
Poruke: 55
*.adsl.net.t-com.hr.



Profil

icon TMemo selekcija od prve do zadnje riječi08.10.2011. u 14:55 - pre 152 meseci
Pitanje...

imam TMemo componentu i u nju kopiram tekst, nakon čega bi na ButtonClick event trebalo izlistat sve riječi iz teksta po redu ( u neku drugu komponentu).

Code:
procedure TForm1.Button1Click(Sender: TObject);
var
  i : integer;
  N1 : integer;
  strS : string;
  strS1 : string;
  chZn : char;
const
  ALF =['a'..'z', 'A'..'Z', 'č', 'ć', 'đ', 'š', 'ž', 'Č', 'Ć', 'Đ', 'Š', 'Ž'] ;
begin
  i := 1;
  strS1 := memo1.Text;
  strS := '';
  N1 := length(strS1);
  chZn := strS1[i];
    while (chZn in ALF) and (N1 <> 0) do
       begin
        i := i + 1;
        strS := strS + chZn;
        chZn := strS1[i];
        ShowMessage('strS: ' + strS);
    end; (*kraj while strZn in ALF and (i < N) do *)
  strS1 := RightStr(strS1, length(strS1) - length(strS) - 1);
  ShowMessage('strS1: ' + strS1);
end;

end.


ovo je kod koji sam napisala ali on ispisuje samo prvu riječ .... KAKO DA GA NATJERAM DA NASTAVI LISTAT/ČITAT

hvala!
 
Odgovor na temu

Aleksandar Đokić

Član broj: 13478
Poruke: 4793
*.dynamic.isp.telekom.rs.



+638 Profil

icon Re: TMemo selekcija od prve do zadnje riječi08.10.2011. u 15:18 - pre 152 meseci
while dodje do "space" karaktera u tekstu i izadje iz petlje (posto nije u "ALF"), a to je posle prve reci, i zato ti ispisuje samo prvu rec,

zar nije bolje ovo odraditi for petljom? nesto ovako:

Code:

s := '';

for 0 to Length(tekst) do
begin
  if tekst[i] = ' ' then
  ShowMessage("Rec: " + s);
  s := '';
  else
  s := s + tekst[i];
end;
 
Odgovor na temu

saxa
nikolina zorica
student
zagreb

Član broj: 266531
Poruke: 55
*.adsl.net.t-com.hr.



Profil

icon Re: TMemo selekcija od prve do zadnje riječi08.10.2011. u 15:54 - pre 152 meseci
ne funkcionira tako, jer treba uzet u obzir da kopirani text osim razmaka i slova sadrži i interpunkcijske znakove i zagrade itd. koje bi na ovaj način uključio u riječ a to ne valja
 
Odgovor na temu

_deran_

Član broj: 69493
Poruke: 252
*.dynamic.sbb.rs.



+1 Profil

icon Re: TMemo selekcija od prve do zadnje riječi08.10.2011. u 16:36 - pre 152 meseci
Zamenis sve znakove interpunkcije i razmake sa #10#13 i dobijeno prebacis u drugi memo. Pogledaj ReplaceStr i slicno.
 
Odgovor na temu

Aleksandar Đokić

Član broj: 13478
Poruke: 4793
*.dynamic.isp.telekom.rs.



+638 Profil

icon Re: TMemo selekcija od prve do zadnje riječi08.10.2011. u 20:00 - pre 152 meseci
onda dodaj

StringReplace(tekst, ',', ' ',[rfReplaceAll, rfIgnoreCase]);
 
Odgovor na temu

saxa
nikolina zorica
student
zagreb

Član broj: 266531
Poruke: 55
*.adsl.net.t-com.hr.



Profil

icon Re: TMemo selekcija od prve do zadnje riječi08.10.2011. u 22:50 - pre 152 meseci
velika hvala
 
Odgovor na temu

saxa
nikolina zorica
student
zagreb

Član broj: 266531
Poruke: 55
*.adsl.net.t-com.hr.



Profil

icon Re: TMemo selekcija od prve do zadnje riječi - još uvijek16.11.2011. u 16:14 - pre 151 meseci
Code:

procedure get_rijec(tekst: string);
var
  i : integer;
  strS : string;
  strS1 : string;
  chZn : char;
  rijec: string;
const
  ALF =['a'..'z', 'A'..'Z', 'č', 'ć', 'đ', 'š', 'ž', 'Č', 'Ć', 'Đ', 'Š', 'Ž'] ;
begin
  strS1:= tekst;
  strS := '';
  rijec := '';
  i := 1;
  strS := '';
  chZn := strS1[i];
    while (chZn in ALF)  do begin
      i := i + 1;
      strS := strS + chZn;
      chZn := strS1[i];
    end;
  rijec := strS;
  ShowMessage(rijec);
 // strS1 := RightStr(strS1, length(strS1) - length(rijec) - 1);
 // ShowMessage('strS1: ' + strS1);
end;


molim vas ako mi neko može pomoći ... cijeli dan se maltretiram s ovim!!
to je onaj isti kod kao na početku teme, i na takav neki način moram rješit problem, al stvarno ne znam. Čitavo vrijeme mi se izvlači samo prva riječ ... ako upotrijebim ovu liniju :

strS1 := RightStr(strS1, length(strS1) - length(rijec) - 1);

i stavim bilo koju petlju da ponavlja dolazi do neke fatalne greške...

Rješenje koje su dobri ljudi dali na ovaj zadatak super radi (malo je kod duži, ali .... hm) , međutim od mene se zahtijeva da to napravim sa while petljom...

znači ono što trebam uraditi je: iščitati sve riječi iz Mema, jednu po jednu, koristeći na ovaka neki način while petlju!!!
 
Odgovor na temu

aca andrijevic
aka LoGaN
Nis

Član broj: 35450
Poruke: 347
93.184.84.*

ICQ: 325309560


+2 Profil

icon Re: TMemo selekcija od prve do zadnje riječi16.11.2011. u 19:20 - pre 151 meseci
Probaj da stavis sve u TStringList

Code:

procedure TForm1.Button1Click(Sender: TObject);
var
  lista : TStringList;
  i : Integer;
begin
  lista := TStringList.Create;
  lista.Delimiter := ' ';
  lista.DelimitedText := Memo1.Text;
  i:=0;
  while i <= lista.Count-1 do begin
    ShowMessage(lista[i]);
    Inc(i, 1);
  end;
end;

"Ne menjaj nesto sto te sasvim dobro sluzi, ne trazi leba preko pogace" - Aleksandar Andrijevic
 
Odgovor na temu

tkaranovic
Tomislav Karanović
Beograd

Član broj: 220507
Poruke: 307



+18 Profil

icon Re: TMemo selekcija od prve do zadnje riječi16.11.2011. u 19:44 - pre 151 meseci
Code (delphi):

  procedure get_rijec(tekst: string);
  var
    i : integer;
    strS : string;
    strS1 : string;
    chZn : char;
    rijec: string;
  const
    ALF =['a'..'z', 'A'..'Z', 'č', 'ć', 'đ', 'š', 'ž', 'Č', 'Ć', 'Đ', 'Š', 'Ž'] ;
  begin
    strS1:= tekst;
    strS := '';
    rijec := '';
    i := 0;
    strS := '';
    while i < Length(tekst) do
    begin
      i := i + 1;
      chZn := strS1[i];
      if (chZn in ALF) then
        strS := strS + chZn
      else
      if chZn = ' ' then
        strS := strS + #13#10;
    end;
    rijec := strS;
    ShowMessage(rijec);
  end;
 

 
Odgovor na temu

saxa
nikolina zorica
student
zagreb

Član broj: 266531
Poruke: 55
*.adsl.net.t-com.hr.



Profil

icon Re: TMemo selekcija od prve do zadnje riječi02.12.2011. u 22:18 - pre 150 meseci
hvala tkaranoviću ... ovako sam riješila problem:

Code:

  S1 := Form1.Memo1.Text;
  ii := 0;
  S := ' ';
  while ii < Length(S1) do begin
    ii := ii + 1;
    Zn := S1[ii];
    if (Zn in ALF) or (Zn in BR) then S := S + Zn else S := S + ' ';
  end;
  S1 := S;

  for i := 1 to length(S1) do begin
    if (S1[i] <> ' ') and (S1[i] <> Chr(13)) and (S1[i] <> Chr(10))then begin
      StringGrid1.Cells[0, StringGrid1.RowCount - 1] := StringGrid1.Cells[0, StringGrid1.RowCount - 1] + S1[i];
      end
    else begin
      if StringGrid1.Cells[0, StringGrid1.RowCount - 1] <> '' then StringGrid1.RowCount := StringGrid1.RowCount + 1;
    end;
  end;
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: TMemo selekcija od prve do zadnje riječi

[ Pregleda: 1974 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

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