Skocz do zawartości


Zdjęcie

[Delphi]Problem z komponentami Memo


  • Zamknięty Temat jest zamknięty
8 odpowiedzi w tym temacie

#1 Legrand

Legrand

    Początkujący

  • 33 postów

Napisano 10 06 2007 - 11:47

Siema,
musze napisac program w Delphi,
a pewną cześć (pętla) mam w C++,
może ktoś mi pomoże napisac to w delphi...
bo sam chyba nie dam rady
int liczba;  //zmienna typu integer
String tmp=""; //zmienna typu string
for(int i=0;i<memo1.Text.Length();i++)
{
   if(memo1.Text1.c_str()[i]!=' ') //jesli kolejna wczytana litera nie jest spacja
	 tmp=tmp+memo1.Text.SubString(i+1,1); //dodaj ja do stringa tmp
   else  //w przeciwnym wypadku
	 {
	   if(tmp!="")  //dodatkowo sprawdz czy tmp w ogole zawiera 
					   //jakies znaki, czyli jesli tmp rozne od pustego stringa
		 {
			 liczba=StrToInt(tmp); //zamien otrzymane tmp na integer i 
			/*zapisz w zmiennej liczba. Teraz mozesz uzyc liczby do  
			   obliczen. Koniecznie zanim przejdziesz do kolejnego kroku petli i zmieni 
			   sie zawartosc zmiennej liczba, czyli w tym miejscu*/
			  tmp=""; //wyczysc zawartosc stringa tmp, aby mozna go poprawnie 
						 //uzyc w nastepnym kroku petli
		 }
	}
}

z góry dzięki za pomoc

  • 0

#2 Aman

Aman

    Windows 98/XP/Vista/Ubuntu

  • 955 postów

Napisano 10 06 2007 - 15:06

Będzie to wyglądać mnie więcej tak:

var liczba : integer;
	  tmp:string;
	  i : integer;

begin

for i:=0 to Length(memo1.Text) do
 begin
   if memo1.Text1<>' ' then 
	 tmp:=tmp+memo1.Text.SubString(i+1,1)
   else 
	begin
	 if tmp<>'' then
	  begin
		liczba:=StrToInt(tmp); 
		tmp:=''; 
	  end;
	end;
 end;

end;

Nie pamientam jak do dokładnie pisze się w delphi te funkcje c_str() i Substring i to może być tylko źle

  • 0

#3 Legrand

Legrand

    Początkujący

  • 33 postów

Napisano 10 06 2007 - 15:55

hmmm. niby powinno bys dobrze, tylko przy pętli występuje błąd

for i:=0 to Length(memo1.Text) do

niezdeklarowany memo1.
o co chodzi ??
  • 0

#4 Aman

Aman

    Windows 98/XP/Vista/Ubuntu

  • 955 postów

Napisano 10 06 2007 - 15:59

Chodzi o nazwę komponentu memo. Jak przenonisz ten komponent na formantke to domyślnie nazwa ustawia sie na "Memo1", a w kodzie masz napisane "memo1", czyli z małej litery. Wystarczy zmienić albo tę nazwę komponentu albo w kodzie.
  • 0

#5 Legrand

Legrand

    Początkujący

  • 33 postów

Napisano 10 06 2007 - 16:04

tzn. prog. ma losuje liczby do pliku, wczytuje je do memo, następnie liczy sume, średnią itp...
i wlaśnie nie potrafie napsiać tego sumowania,
  • 0

#6 Aman

Aman

    Windows 98/XP/Vista/Ubuntu

  • 955 postów

Napisano 10 06 2007 - 16:08

Ale o co ci teraz dokładnie chodzi? Co ci nie działa? To jest cały kod programu? To co ci podałem wyżej (ta pętla) nie jest przypisana żadnej procedurze, tak nie powinno być. Napisz co ma robić ten program dokładnie.
  • 0

#7 Legrand

Legrand

    Początkujący

  • 33 postów

Napisano 10 06 2007 - 16:49

tmp:=tmp+memo1.Text.(błąd)SubString(i+1,1)
właśnie tu gdzieś jest błąd

Rekord, obiekt, lub class type required
  • 0

#8 Aman

Aman

    Windows 98/XP/Vista/Ubuntu

  • 955 postów

Napisano 11 06 2007 - 21:46

Mówiłem ci, że właśnie z tą funkcją SubString będzie coś źle, ja nie wiem jak się dkoładnie robi z tą funkcją w delphi

Edit:

Podaj cały kod tego programu, jak w całości to zobaczę to może uda mi sie coś z tym zrobić.
  • 0

#9 HWAlpros

HWAlpros

    Nowy

  • 2 postów

Napisano 23 04 2008 - 14:07

tmp:=tmp+memo1.Text.(błąd)SubString(i+1,1)
właśnie tu gdzieś jest błąd

Rekord, obiekt, lub class type required


tmp:=tmp+Copy(memo1.Text,i+1,1);
lub też (jesli jest zadeklarowana zmienna "s" typu String),
s:=memo1.Text;
tmp:=tmp+s[i+1];

Powodzenia

  • 0

Zobacz więcej tematów z tagiem: Delphi



Użytkownicy przeglądający ten temat: 1

0 użytkowników, 1 gości, 0 anonimowych