spicirmkh
دوشنبه 31 فروردین 1388, 12:00 عصر
سلام
من يك برنامه چاپ كردن چك نوشتم با دلفي 2007 و تاريخ به حروف مي نوشت متاسفانه
اما سورس گم كردم :گریه:
سال كبيسه شده نمي توانم برنامه اصلاح كنم
راهي است برنامه EXE به سورس دلفي تبديل كرد
با تشكر
ghabil
دوشنبه 31 فروردین 1388, 22:27 عصر
دنبال Delphi Decompiler بگردی یک چیزایی پیدا میکنی ، اما اینکه فکر کنی امکان داره دقیقا همون سورس کد رو بهت تحویل بده ، اینطور نیست، برنامه ای که کامپایل میشه تقریبا همه اسمها توش از بین میرند..
راستی اگر چیز خوب و جدیدی پیدا کردی به من خبر بده بیزحمت
merced
دوشنبه 31 فروردین 1388, 22:36 عصر
كاري نداره. دوباره بنويس
اين كد براي تبديل يك رشته به سه قسمت سال و ماه و روز :
function StrToYMD(S: String; var Y, M, D: Word): Boolean;
var
P: Integer;
begin
Result := False;
try
P := Pos('/', S);
if P > 0 then
begin
Y := StrToInt(Copy(S, 1, P - 1));
Delete(S, 1, P);
P := Pos('/', S);
if P > 0 then
begin
M := StrToInt(Copy(S, 1, P - 1));
D := StrToInt(Copy(S, P + 1, Length(S) - P));
Result := True;
end;
end;
except
end;
end;
اينم يه كد براي تبديل عدد به حروف :
function Number2Str (Nm: string): string;
const
Main: array[1..3,0..9]of string = (('', 'يكصد و', 'دويست و', 'سيصد و', 'چهارصد و', 'پانصد و', 'ششصد و', 'هفتصد و', 'هشتصد و', 'نهصد و'),
('', '', 'بيست و', 'سي و', 'چهل و', 'پنجاه و', 'شصت و', 'هفتاد و', 'هشتاد و', 'نود و'),
('', 'يك', 'دوو', 'سه', 'چهار', 'پنج', 'شش', 'هفت', 'هشت', 'نه'));
NPos: array[1..6]of string = ( 'تريليارد و','تريليون و','ميليارد و', 'ميليون و', 'هزار و', '');
_10_19: array[10..19]of string = ('ده', 'يازده', 'دوازده', 'سيزده', 'چهارده', 'پانزده', 'شانزده', 'هفده', 'هجده', 'نوزده');
var
TMP2, TMP: string;
Cntr2, Cntr: Integer;
begin
if Trim(Nm) ='' then
Exit ;
case Length(Nm) mod 3 of
1: TMP := '00';
2: TMP := '0';
end;
Nm := TMP + Nm;
TMP := '';
if Length(Nm) <=3 then begin
for Cntr := 1 to 3 do
if (Cntr = 2) and (Nm[Cntr] = '1') then begin
TMP := TMP + _10_19[StrToInt(Copy(Nm, 2, 2))] + ' ';
Break;
end else
TMP := TMP + Main[Cntr, StrToInt(Nm[Cntr])] + ' ';
TMP := Trim(TMP);
Cntr := Length(TMP);
if TMP <> '' then
if (TMP[Cntr] = 'و')and(TMP[Cntr-1] = 'و') then
Delete(TMP, Cntr, 1);
Result := TMP + ' ';
Exit;
end;
Cntr2 := 0;
for Cntr := (6 - (Length(Nm) div 3)) + 1 to 6 do begin
TMP2 := Number2Str(Copy(Nm, (Cntr2 * 3) + 1, 3));
if Trim(TMP2) <> '' then
TMP := TMP + TMP2 + NPos[Cntr] + ' ';
Inc(Cntr2);
end;
TMP := Trim(TMP);
Cntr := Length(TMP);
if TMP <> '' then
if (TMP[Cntr] = 'و')and(TMP[Cntr-1] = 'و') then
Delete(TMP, Cntr, 1);
Result := TMP;
end;
خوب فكر كنم حل باشه ديگه . هر تاريخ از سه قسمت تشكيل شده
سه قسمتش رو با تايع اول جدا مي كني
دو تا قسمت اول و سوم رو با تابع دوم به رشته تبديل مي كني
قسمت سوم هم كه 12 تا بيشتر نيست
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.