Mahmood_M
جمعه 01 تیر 1386, 17:30 عصر
سلام
من یک دسته عدد به صورت رشته دارم ، مثلا : 2+3-4
من یک تابع نوشتم و با اون مقدار + رو به - و مقدا - رو به + تبدیل می کنم ...
حالا میخوام این شرط رو بزارم که اگه بعد از این تبدیل ، " اگر در ابتدای این رشته ( اولین حرف ) برابر با " + " یا برابر با " - " نبود " ، به اول رشته من " - " اضافه بشه ...
فرض کنید که میخواهید چند عدد رو به طرف دیگر یک تصاوی ببرید ( منفی ها به مثبت و مثبتها به منفی تبدیل میشن )
این کدیه که من نوشتم :
function TakeToLeft(Eq : String): String;
var
EqualPos : Integer;
RS : String;
LS : String;
begin
LS := Eq;
EqualPos := Pos('=', LS);
RS := Copy(LS, EqualPos+1, Length(Eq)-EqualPos);
RS := Replace(RS);
Delete(LS, EqualPos, (Length(LS)-EqualPos)+1);
if (Copy(RS, 1, 1) <> '-') and (Copy(RS, 1, 1) <> '+') then
RS := '-'+RS;
LS := LS+RS;
Result := LS;
end;
در کد بالا ، Replace ، اون تابعی هست که برای تبدیل مقدارها ( مثبت به منفی و بلعکس ) نوشتم ...
ولی نتیجه این کد به صورت زیر است :
اگر به این تابع مقداری بدم که اولین حرفش منفی یا مثبت نباشه ، همه چیز درسته و منفی رو اضافه میکنه ولی اگه اولش منفی باشه ، باز هم منفی رو اضافه می کنه !!!!
ولی من شرط گذاشتم که در صورت نبودن منفی و نبودن مثبت این کار رو بکنه ...
اینم بگم که فکر نکنم که مشکل از تابع Replace باشه ، چون تست شده و مشکلی نداشته ...
با تشکر از همگی ...
موفق باشید ...
من یک دسته عدد به صورت رشته دارم ، مثلا : 2+3-4
من یک تابع نوشتم و با اون مقدار + رو به - و مقدا - رو به + تبدیل می کنم ...
حالا میخوام این شرط رو بزارم که اگه بعد از این تبدیل ، " اگر در ابتدای این رشته ( اولین حرف ) برابر با " + " یا برابر با " - " نبود " ، به اول رشته من " - " اضافه بشه ...
فرض کنید که میخواهید چند عدد رو به طرف دیگر یک تصاوی ببرید ( منفی ها به مثبت و مثبتها به منفی تبدیل میشن )
این کدیه که من نوشتم :
function TakeToLeft(Eq : String): String;
var
EqualPos : Integer;
RS : String;
LS : String;
begin
LS := Eq;
EqualPos := Pos('=', LS);
RS := Copy(LS, EqualPos+1, Length(Eq)-EqualPos);
RS := Replace(RS);
Delete(LS, EqualPos, (Length(LS)-EqualPos)+1);
if (Copy(RS, 1, 1) <> '-') and (Copy(RS, 1, 1) <> '+') then
RS := '-'+RS;
LS := LS+RS;
Result := LS;
end;
در کد بالا ، Replace ، اون تابعی هست که برای تبدیل مقدارها ( مثبت به منفی و بلعکس ) نوشتم ...
ولی نتیجه این کد به صورت زیر است :
اگر به این تابع مقداری بدم که اولین حرفش منفی یا مثبت نباشه ، همه چیز درسته و منفی رو اضافه میکنه ولی اگه اولش منفی باشه ، باز هم منفی رو اضافه می کنه !!!!
ولی من شرط گذاشتم که در صورت نبودن منفی و نبودن مثبت این کار رو بکنه ...
اینم بگم که فکر نکنم که مشکل از تابع Replace باشه ، چون تست شده و مشکلی نداشته ...
با تشکر از همگی ...
موفق باشید ...