PDA

View Full Version : تشخیص کارکتری متن



Mask
شنبه 14 آذر 1388, 18:31 عصر
با سلام به همه دوستان
متن زیر رو من دارم...
applay c:\windows\system32\ali.exe
با یک کد کلمه exe رو پیدا کردم.
حالا می خام از راست به چپ برگردم و تا حرف \ رو بریزم داخل یه ادیت.
چطوری باید این کار رو بکنم.
البته طول کلمه قبل از exe یکسان نیست.
یه بار ali.exe یا reza.exe
ممنون از دوستان.

benyaminrahimi
شنبه 14 آذر 1388, 18:59 عصر
این همه کد نوشتن که extractFileName رو دوباره اخترع کنید؟؟؟؟؟؟؟

extractFileName('c:\windows\system32\ali.exe')f

دلفی اینقدرم زبان کر و لالی نیست باورکنید

Felony
شنبه 14 آذر 1388, 19:00 عصر
Uses StrUtils ;

var
S:String;
begin
S:='applay c:\windows\system32\ali.exe';
S:=ExtractFileName(S);
S:=LeftStr(S,Length(S)-4);
Form1.Caption:=S;
end;

Felony
شنبه 14 آذر 1388, 19:05 عصر
پاسخ من با benyaminrahimi یکی شد ، همونطور که گفتن باید از ExtractFileName استفاده کنید ، اگر هم خواستید .exe رو حذف کنید که کدی که نوشتم این کار رو براتون انجام میده .

Mask
یک شنبه 15 آذر 1388, 14:11 عصر
ممنون ازدوستان
یه سوال دیگه اینکه با روش بالا میشه تا / رو جدا کرد.
حالا اگه بخواهیم تا اسپیس رو جدا کنیم باید چیکار کرد.
مانند مثال زیر
c:\windows \ ali.exe
ممنون از دوستان عزیز.

FiACKER
یک شنبه 15 آذر 1388, 14:43 عصر
شما از یه حلقه تکرار استفاده کن.

باید اول طول رشته رو بدست بیاری.
بعد از اخر به اول حرکت کنی و یکی یکی کارکتر ها رو چک کنید.
و وقتی به کارکتر فاصله یا / یا هر چیزی که مده نظرتون هست برسید از حلقه بیاید بیرون.
بعد شروع کنید و از مکانه کارکتره فاصله تا اخر رو با تابع Mid برگردونید.

خیلی راحته. الان رویه سیستم دلفیه عزیز نصب نیست وگرنه برات می نوشتم.

Felony
یک شنبه 15 آذر 1388, 14:46 عصر
تو رشته بالا 2 تا فاصله هست ، شما کدوم رو میگید ؟ اگر منظورتون اون فاصله ای هست که تو قسمت نام فایل هست که خود تابع ExtractFileName از بعد از آخرین \ همه ی کارکترها رو بر میگردونه که میشه نام فایل ، حتی کارکتر فاصله ، اگر هم میخواین آدرس فایل رو جدا کنید :


var
S:String;
begin
S:='c:\windows \ ali.exe';
S:=ExtractFilePath(S);
Form1.Caption:=S;
end;

شاید هم منظورتون نام فایل به همراه \ و فاصله ی قبل از اون هست ؟

Felony
یک شنبه 15 آذر 1388, 14:48 عصر
بعد شروع کنید و از مکانه کارکتره فاصله تا اخر رو با تابع Mid برگردونید.
دلفی تابعی به نام Mid نداره ، Mid تابع ویژوال بیسیک هست ، برای این کار دلفی تابع Copy رو در اختیار برنامه نویس گزاشته .

AliReza Vafakhah
یک شنبه 15 آذر 1388, 15:26 عصر
دلفی تابعی به نام Mid نداره ، Mid تابع ویژوال بیسیک هست ، برای این کار دلفی تابع Copy رو در اختیار برنامه نویس گزاشته .

تابع MidStr از یونیت StrUtils (البته این هم copy رو فراخونی میکنه)

Felony
یک شنبه 15 آذر 1388, 15:41 عصر
تابع MidStr از یونیت StrUtils (البته این هم copy رو فراخونی میکنه)

بله ، این رو میدونستم ، ولی این MidStr هست و اونی که دوستمون گفتن Mid که جزو توابع VB هست .

FiACKER
دوشنبه 16 آذر 1388, 23:45 عصر
منظوره منم همون MidStr هست که چون تابع پر کاربردی هست و همه بلدن ، فقط mid ش رو نوشتم.