ورود

View Full Version : خواندن از استرینگ



Mask
شنبه 29 اسفند 1388, 17:59 عصر
با سلام
چطوری باید یک استرینگ رو یکی نه یکی خواند
یعنی:
استرینگ : 1234567890
تبدیل به : 13579
ممنون

Felony
شنبه 29 اسفند 1388, 18: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, 18:19 عصر
درود :
با استرینگ ها میشه مثل آرایه ها رفتار کرد .

Mask
شنبه 29 اسفند 1388, 18: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, 18:40 عصر
شما با متغییر استرینگ می تونید مانند آرایه استفاده کنید و نه مقدار داخل یک ادیت .
ابتدا مقدار اون رو داخل یه متغیر بریز بعد .

Mask
شنبه 29 اسفند 1388, 18: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, 19:01 عصر
اگه مقدار Edit1 رو برابر با Edit1 بزارم
کجا این کد رو می نویسی .

Felony
شنبه 29 اسفند 1388, 19:07 عصر
برنامتون رو قرار بدید تا بررسی بشه .

Mask
شنبه 29 اسفند 1388, 19: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, 21:15 عصر
-1 به خاطر این هست که gettextlen طول رشته رو میده!ولی ایندکس حلقه از صفر شروع شده!