ورود

View Full Version : معادل دلفی یک دستور



yashar666
جمعه 21 اسفند 1388, 22:03 عصر
با سلام

می خواستم ببینم دستور Split در زبان وی بی معادلش در delphi چیست

جواد ملاولی
جمعه 21 اسفند 1388, 22:13 عصر
سلام.
خوب اين دستور چكار مي كنه؟

Naruto
جمعه 21 اسفند 1388, 23:03 عصر
سلام ,
تابع StringReplace شبیه به Split در VB عمل میکنه.
برای آشنایی با کاربرد این تابع تاپیک زیر را ببینید:


http://barnamenevis.org/forum/showthread.php?t=144938

حمید محمودی
شنبه 22 اسفند 1388, 00:58 صبح
سلام

چرا برای اینکه زودتر به جوابتون برسین جست جو نمیکنین؟؟!!!! نمونه اش تو سایت هست که.

ولی حالا که پرسیدین ...



type
TSplitArray = array of String;
function Split(const Source, Delimiter: String): TSplitArray;
var
iCount: Integer;
iPos: Integer;
iLength: Integer;
sTemp: String;
aSplit: TSplitArray;
begin
sTemp := Source;
iCount := 0;
iLength := Length(Delimiter) - 1;
repeat
iPos := Pos(Delimiter, sTemp);
if iPos = 0 then
break
else begin
Inc(iCount);
SetLength(aSplit, iCount);
aSplit[iCount - 1] := Copy(sTemp, 1, iPos - 1);
Delete(sTemp, 1, iPos + iLength);
end;
until False;
if Length(sTemp) > 0 then begin
Inc(iCount);
SetLength(aSplit, iCount);
aSplit[iCount - 1] := sTemp;
end;

Result := aSplit;
end;



موفق باشید

vcldeveloper
شنبه 22 اسفند 1388, 03:38 صبح
چرا برای اینکه زودتر به جوابتون برسین جست جو نمیکنین؟؟!!!! نمونه اش تو سایت هست که.

ولی حالا که پرسیدین ...
این کد قراره چیکار کنه؟ یک متن Delimit شده را آیتم هایش را برگشت بده؟ مثلا آیتم هایی که با کاما از هم در متن جدا شدند را به صورت متن های جداگانه برگشت بده؟

اگر هدف این هست، که دیگه نیاز به این هم کد نویسی نبود، کلاس TStringList دلفی خودش این کار را انجام میده؛ کارکتر جداکننده (Delimiter) را بهش میدید، و متن را هم به خصوصیت DelimitedText آن اختصاص می دید، لیست آیتم های جدا شده را از خصوصیت Strings دریافت می کنید:


var
SList : TStringList;
My_Input_String : string;
AItem : string;
begin
My_Input_String := 'a;b;c;d;e;f;g';
SList := TStringList.Create;
with TStringList.Create do
try
SList.Delimiter := ';';
SList.DelimitedText := My_Input_String;
for AItem in SList do
WriteLn(AItem);
finally
SList.Free;
end;
end;

حمید محمودی
شنبه 22 اسفند 1388, 13:56 عصر
یک نمونه اینجا هم هست .



http://www.barnamenevis.org/forum/showpost.php?p=863813&postcount=29

yashar666
شنبه 22 اسفند 1388, 15:50 عصر
من با تابع StringReplace کار کردن خیلی راحت کارم رو انجام داد