View Full Version : خواندن از استرینگ
  
Mask
شنبه 29 اسفند 1388, 18:59 عصر
با سلام 
چطوری باید یک استرینگ رو یکی نه یکی خواند 
یعنی:
استرینگ : 1234567890
تبدیل به : 13579
ممنون
Felony
شنبه 29 اسفند 1388, 19:14 عصر
var
  A: String;
  i: Integer;
begin
  A:= '1234567890';
  for i := 0 to Length(A) - 1 do
    if i mod 2<>0 then
      Form1.Caption:= Form1.Caption+ A[i];
end;
pezhvakco
شنبه 29 اسفند 1388, 19:19 عصر
درود :
با استرینگ ها میشه مثل آرایه ها رفتار کرد .
Mask
شنبه 29 اسفند 1388, 19:33 عصر
چرا کد من اشتباه کار میکنه.
procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer;
begin
j:=1;
For i:=1 to Edit1.GetTextLen do begin
Edit2.Text:=Trim(Edit2.Text+Edit1.Text[j]);
j:=j+2;
end;
end;
pezhvakco
شنبه 29 اسفند 1388, 19:40 عصر
شما با متغییر استرینگ می تونید مانند آرایه استفاده کنید و نه مقدار داخل یک ادیت . 
ابتدا مقدار اون رو داخل یه متغیر بریز بعد .
Mask
شنبه 29 اسفند 1388, 19:50 عصر
ممنون از دوستان
من کد دوست خوبم silversoft رو به شکل زیر تغییر دادم.
var
  i: Integer;
begin
  for i := 0 to Edit1.GetTextLen - 1 do
    if i mod 2<>0 then
     Edit2.Text:= Edit2.Text+Edit1.Text[i];
end;
مشکلی نداره اما اگه مقدار Edit1 رو برابر با Edit1 بزارم در Edit2 مقدار Ei رو بر میگردونه و 1 آخرش رو تشخیص نمیده.
چرا؟
pezhvakco
شنبه 29 اسفند 1388, 20:01 عصر
اگه مقدار Edit1 رو برابر با Edit1 بزارم 
کجا این کد رو می نویسی .
Felony
شنبه 29 اسفند 1388, 20:07 عصر
برنامتون رو قرار بدید تا بررسی بشه .
Mask
شنبه 29 اسفند 1388, 20:19 عصر
با سلام
کد رو به شکل زیر تغییر دادم درست شد.
var
  i: Integer;
begin
  for i := 0 to Edit1.GetTextLen do
    if i mod 2<>0 then
      Edit2.Text:= Edit2.Text+ Edit1.Text[i];
end;
دلیل استفاده از 1- رو هم متوجه نشدم.
vahid64
شنبه 29 اسفند 1388, 22:15 عصر
-1 به خاطر این هست که gettextlen طول رشته رو میده!ولی ایندکس حلقه از صفر شروع شده!
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.