ďťż

Ładny brzuch

Witam. Mam taka tablice:
Tablica : array[0..4] of string = (('A'),('B'),('C'),('D'));
Moj problem polega na tym ze chce aby kazdy znak wpisany w memo byl porownywany z kazda z wartosci znajdujacych sie w tablicy.
Czyli, jezeli Memo1.Text[I] := Tablica[I] zeby dalo znac.
Wiem ze to bedzie petla, jednak nieumem sobie z tym poradzic.
Mam nadzieje ze dobrze wytlumaczylem, prosze o pomoc ;)
Pozdrawiam

--------------------
GG: 4206396



Tak wytłumaczyłeś że człowiek niczego nie zrozumiał ;).
1. Jeśli chcesz tam przechowywać oddzielne znaki to użyj tablicy charów :).
2. Jesteś pewny że chodzi ci o Memo a nie Edita bo dostęp do linjek w meo wygląda tak memo.lines[numer lini];
3. Napisz dokładnie o co ci chodzi ? :)

-------------- ------------- ------------- --------------- ------
literka M literka K literka S jak eMKaeS lallaalallalalalallalalallallalala
-------------- --------------- ------------- --------------- ----

to będzie jakoś tak:
i := 0; t := 0; //znak, który sprawdzasz w tablicy while i < Lenght(Memo1.Lines.Text) - 1 do      begin           if memo1.Lines.Text[i] = Tablica[t] then              begin                               //coś tam              end;           if Memo1.Lines.Text[i] <> Tabliaca[t] then              t := t + 1 ;           if t = 4 then              begin                   t := 0;                   i := i + 1;              end;      end;
Powinno zadziałać :lol:

Const  Tablica : array [1..4]of string = (  ('A'),('B'),('C'),('D')  ); Var  I,T : Integer; Begin  I := 0;  T := 0;  Repeat    If Memo1.Lines.Text[I] = Tablica[T] Then    Begin      ShowMessage('Odnalazlem: ' + Tablica[T]);      I := I + 1;    End;    If Memo1.Lines.Text[I] <> Tablica[T] Then    Begin      T := T + 1;      //ShowMessage(Tablica[T]);    End;  Until T = High(Tablica);  //ShowMessage('koniec'); End;

Mozecie powiedziec mi czemu, jesli program trafi na szukany znak nie wyswietla odpowiedniego komunikatu :?:?:? A wiem ze natrafia ;)
(patrz: komentarze) :D Pewnie znowu robie jakis prosty, glupi blad [:/]

--------------------
GG: 4206396



Szkoda ze niema opcji edycji posta [:/] Juz sobie poradzilem, natomiast niemoge zwolnic tablicy Tablica.Free - niedziala [:/] Wiecie moze czemu :? Wywala blad:
cytat:
[Pascal Error] Unit1.pas(1): Unable to invoke Code Completion due to errors in source code

--------------------
GG: 4206396

Poprawcie mnie, jeśli się mylę, ale chyba typ String nie ma metod. W tym FREE. A to, że tablica - to już inna beczka.

]==][::::::::::::::::::::::::>
:! Nie tykać nawet kijem długim na pięć metrów :!
Poza tym - niech żyją moderatorzy :P

To dosc prawdopodobne (NIE nabijam postów - zapomniałem o tym, co tu piszę), że NIE ma metody Free w Stringu, a to dlatego, że... Ten typ wywodzi się z "rdzenia" Pascala, za to, np. TBitmap to typy, ściślej obiekty, dodane później, a z racji tego, że są obiektami, to mają metody. Można zawsze spróbować szukać jakiejś zewnętrznej funkcji albo procedury "czyszczącej" Stringi. Albo zadeklarowałeś je jako stałe. Pomyśl chwilę nad tym, co napisałem i spróbuj odczytać myśl.

]==][::::::::::::::::::::::::>
:! Nie tykać nawet kijem długim na pięć metrów :!
Poza tym - niech żyją moderatorzy :P

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •