spicirmkh
دوشنبه 31 فروردین 1388, 13:00 عصر
سلام
 
من يك برنامه چاپ كردن چك نوشتم با دلفي 2007 و تاريخ به حروف مي نوشت متاسفانه 
اما سورس گم كردم :گریه:
سال كبيسه شده نمي توانم برنامه اصلاح كنم
 
راهي است برنامه EXE به سورس دلفي تبديل كرد 
 
با تشكر
ghabil
دوشنبه 31 فروردین 1388, 23:27 عصر
دنبال Delphi Decompiler بگردی یک چیزایی پیدا میکنی ، اما اینکه فکر کنی امکان داره دقیقا همون سورس کد رو بهت تحویل بده ، اینطور نیست، برنامه ای که کامپایل میشه تقریبا همه اسمها توش از بین میرند..
راستی اگر چیز خوب و جدیدی پیدا کردی به من خبر بده بیزحمت
merced
دوشنبه 31 فروردین 1388, 23: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.