نمایش نتایج 1 تا 40 از 120

نام تاپیک: مرجع توابع دلفی

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    Lightbulb توابع HexToInt - IntToBin - BinToInt



    { ======================================= }
    { Convert a HexString value to an Int64 }
    { Note : Last Char can be 'H' for Hex }
    { eg. '00123h' or '00123H' }
    { 0 will be returned if invalid HexString }
    { ======================================= }

    function HexToInt(HexStr : string) : Int64;
    var RetVar : Int64;
    i : byte;
    begin
    HexStr := UpperCase(HexStr);
    if HexStr[length(HexStr)] = 'H' then
    Delete(HexStr,length(HexStr),1);
    RetVar := 0;

    for i := 1 to length(HexStr) do begin
    RetVar := RetVar shl 4;
    if HexStr[i] in ['0'..'9'] then
    RetVar := RetVar + (byte(HexStr[i]) - 48)
    else
    if HexStr[i] in ['A'..'F'] then
    RetVar := RetVar + (byte(HexStr[i]) - 55)
    else begin
    Retvar := 0;
    break;
    end;
    end;

    Result := RetVar;
    end;

    { ============================================== }
    { Convert an Int64 value to a binary string }
    { NumBits can be 64,32,16,8 to indicate the }
    { return value is to be Int64,DWord,Word }
    { or Byte respectively (default = 64) }
    { NumBits normally are only required for }
    { negative input values }
    { ============================================== }

    function IntToBin(IValue : Int64; NumBits : word = 64) : string;
    var RetVar : string;
    i,ILen : byte;
    begin
    RetVar := '';

    case NumBits of
    32 : IValue := dword(IValue);
    16 : IValue := word(IValue);
    8 : IValue := byte(IValue);
    end;

    while IValue <> 0 do begin
    Retvar := char(48 + (IValue and 1)) + RetVar;
    IValue := IValue shr 1;
    end;

    if RetVar = '' then Retvar := '0';
    Result := RetVar;
    end;


    { ============================================== }
    { Convert a bit binary string to an Int64 value }
    { Note : Last Char can be 'B' for Binary }
    { eg. '001011b' or '001011B' }
    { 0 will be returned if invalid BinaryString }
    { ============================================== }

    function BinToInt(BinStr : string) : Int64;
    var i : byte;
    RetVar : Int64;
    begin
    BinStr := UpperCase(BinStr);
    if BinStr[length(BinStr)] = 'B' then Delete(BinStr,length(BinStr),1);
    RetVar := 0;
    for i := 1 to length(BinStr) do begin
    if not (BinStr[i] in ['0','1']) then begin
    RetVar := 0;
    Break;
    end;
    RetVar := (RetVar shl 1) + (byte(BinStr[i]) and 1) ;
    end;

    Result := RetVar;
    end;


  2. #2

    Lightbulb توابع تبدیل تاريخ میلادی به شمسی و بالعکس

    تابع تبدیل تاریخ میلادی به هجری :




    Function MiladiToHejri(GregorianDate : String;DateType : Integer) : String;
    var
    jmm, jdd : string;
    g_days_in_month, j_days_in_month : array[0..11] of Integer;
    HijriMonths : array[1..12] of String;
    g_day_no, j_day_no, jy, jm, gy, gm : Longint;
    j_np, i, jd, GD : Integer;
    flag : Boolean;
    begin
    flag := true;
    g_days_in_month[0] := 31;
    g_days_in_month[1] := 28;
    g_days_in_month[2] := 31;
    g_days_in_month[3] := 30;
    g_days_in_month[4] := 31;
    g_days_in_month[5] := 30;
    g_days_in_month[6] := 31;
    g_days_in_month[7] := 31;
    g_days_in_month[8] := 30;
    g_days_in_month[9] := 31;
    g_days_in_month[10] := 30;
    g_days_in_month[11] := 31;

    j_days_in_month[0] := 31;
    j_days_in_month[1] := 31;
    j_days_in_month[2] := 31;
    j_days_in_month[3] := 31;
    j_days_in_month[4] := 31;
    j_days_in_month[5] := 31;
    j_days_in_month[6] := 30;
    j_days_in_month[7] := 30;
    j_days_in_month[8] := 30;
    j_days_in_month[9] := 30;
    j_days_in_month[10] := 30;
    j_days_in_month[11] := 29;

    If GregorianDate = Null Then Exit;
    ShortDateFormat := 'yyyy/mm/dd';
    gy := (StrToInt(GregorianDate[1]+GregorianDate[2]+GregorianDate[3]+GregorianDate[4]) - 1600) ;
    gm := (StrToInt(GregorianDate[6]+GregorianDate[7]) - 1) ;
    GD := (StrToInt(GregorianDate[9]+GregorianDate[10]) - 1) ;

    g_day_no := 365 * gy + (gy + 3) div 4 - (gy + 99) div 100 + ( gy + 399) div 400;
    i := 0;
    While i < gm do
    begin
    g_day_no := g_day_no + g_days_in_month[i];
    i := i + 1;
    end;

    If (gm > 1) And (((gy Mod 4 = 0) And (gy Mod 100 <> 0)) Or (gy Mod 400 = 0)) Then
    g_day_no := g_day_no + 1;

    g_day_no := g_day_no + GD;
    j_day_no := g_day_no - 79;
    j_np := j_day_no div 12053;
    j_day_no := j_day_no Mod 12053;
    jy := 979 + 33 * j_np + 4 * (j_day_no div 1461);
    j_day_no := j_day_no Mod 1461;

    If (j_day_no >= 366) Then
    begin
    jy := jy + ((j_day_no - 1) div 365);
    j_day_no := (j_day_no - 1) Mod 365;
    End;
    i := 0;
    While (j_day_no >= j_days_in_month[i]) and flag do
    begin
    j_day_no := j_day_no - j_days_in_month[i];
    i := i + 1;
    If i > 12 Then
    begin
    i := 11;
    j_day_no := 29;
    flag := False;
    End;
    end;
    jm := i + 1;
    jd := j_day_no + 1;
    jmm := IntToStr(jm);
    jdd := IntToStr(jd);
    If (Length(jmm) = 1) then
    jmm := '0' + jmm
    else
    jmm := jmm;
    if (Length(jdd) = 1) then
    jdd := '0' + jdd
    else
    jdd := jdd;

    HijriMonths[1] := 'فروردين';
    HijriMonths[2] := 'ارديبهشت';
    HijriMonths[3] := 'خرداد';
    HijriMonths[4] := 'تير';
    HijriMonths[5] := 'مرداد';
    HijriMonths[6] := 'شهريور';
    HijriMonths[7] := 'مهر';
    HijriMonths[8] := 'آبان';
    HijriMonths[9] := 'آذر';
    HijriMonths[10] := 'دي';
    HijriMonths[11] := 'بهمن';
    HijriMonths[12] := 'اسفند';
    if jmm = '13' then
    begin
    jmm := '12';
    jdd := '30';
    end;
    Case DateType of
    0:
    MiladiToHejri := IntToStr(jy) + '/' + jmm + '/' + jdd;
    1:
    MiladiToHejri := IntToStr(strtoint(jdd)) + ' ' + HijriMonths[StrToInt(jmm)] + ' ' + IntToStr(jy);
    End;
    End;






    تابع تبدیل تاریخ هجری به میلادی :



    Function HejriToMiladi(HejriDate : String;DateType : Integer) : String;
    var
    jy, jm, jd, Hd, Gd,y ,m, tmp, jmmm, jddd, jyyy : string;
    c : Integer;
    MiladiMonths : array[1..12] of String;
    begin
    jy := Copy(HejriDate,1,4);

    jm := copy(HejriDate, 6, 2);
    If (Length(jm) = 1) then
    jm := '0' + jm
    else
    jm := jm;

    jd := copy(HejriDate,9,2);
    if (copy(jd,1,1) = '/' ) then
    jd := '0' + copy(jd,2,1)
    else
    jd := jd;

    HD := jy + '/' + jm + '/' + jd;
    Case StrToInt(jm) of
    1, 2, 3, 4, 5, 6, 7, 8, 9, 10 :
    begin
    m := IntToStr(StrToInt(jm) + 2);
    Y := IntToStr(StrToInt(jy) + 621);
    end;
    11, 12 :
    begin
    m := '0' + copy(jm,2,1);
    Y := IntToStr(StrToInt(jy) + 622);
    end
    End;//case
    ShortDateFormat := 'yyyy/mm/dd';
    GD := Y + '/' + m + '/01';
    c := 0;
    While True do
    begin
    tmp := GD;
    If HD = MiladiToHejri(GD,0) Then
    break;
    GD := DateToStr(strtoDate(tmp)+ 1);
    c := c + 1;
    If c > 1000 Then
    begin
    HejriToMiladi := 'تاريخ وارد شده اشتباه مي باشد . ';
    Exit;
    end;
    end;//while

    MiladiMonths[1] := 'January';
    MiladiMonths[2] := 'February';
    MiladiMonths[3] := 'March';
    MiladiMonths[4] := 'April';
    MiladiMonths[5] := 'May';
    MiladiMonths[6] := 'June';
    MiladiMonths[7] := 'July';
    MiladiMonths[8] := 'August';
    MiladiMonths[9] := 'September';
    MiladiMonths[10] := 'October';
    MiladiMonths[11] := 'November';
    MiladiMonths[12] := 'December';
    Case DateType of
    0:
    HejriToMiladi := GD;
    1:
    begin
    jyyy := copy(GD,1,4);
    jmmm := copy(GD,6,2);
    if (copy(jmmm,2,1) = '/' ) then
    jmmm := '0' + copy(jmmm,1,1)
    else
    jmmm := jmmm;
    jddd := copy(GD,Length(GD)-1,2);
    if (copy(jddd,1,1) = '/' ) then
    jddd := '0' + copy(jddd,2,1)
    else
    jddd := jddd;
    HejriToMiladi := jyyy + ' ' + MiladiMonths[StrToInt(jmmm)] + ' ' + IntToStr(strtoint(jddd));
    end;
    End;
    End;
    آخرین ویرایش به وسیله دلفــي : شنبه 22 اردیبهشت 1403 در 08:36 صبح

  3. #3

    Lightbulb تابع Windows String To Dos String



    function WinToDosStr(WinStr:string):string;
    var Nflag:boolean;
    Ch:Char;
    T,N,M,I,J,DosI:integer;
    TmpStr,Str1,Str2:String;
    DosSt:String;
    begin
    DosSt:=''; WinStr:=WinStr+' '; M:=length(WinStr);
    for I:=1 to M do
    DosSt:=DosSt + #32;
    DosI:=M; Str1:='';
    for I:=1 To M do
    begin
    Nflag:=False;
    case WinStr[i] Of
    ' ' :Begin
    Ch:=#32;
    end;
    '.','0' .. '9'
    : begin
    Ch:=chr(ord(WinStr[i])+80);
    if (WinStr[i])='.' then
    ch:=#140;
    str1:=str1+ch;
    Nflag:=true;
    ch:=#0;
    end;
    'a' .. 'z',
    'A' .. 'Z'
    : begin
    Ch:=WinStr[i];
    str1:=str1+ch;
    Nflag:=true;
    ch:=#0;
    end;
    'آ' :begin
    ch:=#141;
    end;
    'ئ' :Begin
    Ch:=#142;
    end;
    'ء' :Begin
    Ch:=#143;
    end;
    'ا' :begin
    Ch:=#145;
    if((WinStr[i-1]=' ')or
    (WinStr[i-1]=#157)or
    (WinStr[i-1]='ا')or
    (WinStr[i-1]='و')or
    (WinStr[i-1]='د')or
    (WinStr[i-1]='ذ')or
    (WinStr[i-1]='ر')or
    (WinStr[i-1]='ز')or
    (WinStr[i-1]='ژ')or
    (i=1 )
    )
    then
    ch:=#144;
    end;
    'ب' : begin
    Ch:=#147;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    Ch:=#146;
    end;
    'پ' : begin
    Ch:=#149;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    Ch:=#148;
    end;
    'ت' :begin
    Ch:=#151;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    Ch:=#150;
    end;
    'ث' :begin
    Ch:=#153;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#152
    end;
    'ج' :begin
    Ch:=#155;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#154
    end;
    'چ' :begin
    Ch:=#157;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#156;
    end;
    'ح' :begin
    Ch:=#159;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#158;
    end;
    'خ' :begin
    Ch:=#161;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#160;
    end;
    'د' :begin
    Ch:=#162;
    end;
    'ذ' :begin
    Ch:=#163;
    end;
    'ر' :begin
    Ch:=#164;
    end;
    'ز' :begin
    Ch:=#165;
    end;
    'ژ' :begin
    Ch:=#166;
    end;
    'س' :begin
    Ch:=#168;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    Ch:=#167;
    end;
    'ش' :begin
    Ch:=#170;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#169;
    end;
    'ص' :begin
    Ch:=#172;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#171;
    end;
    'ض' :begin
    Ch:=#174;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#173;
    end;
    'ط' :begin
    ch:=#175 ;
    end;
    'ظ' :begin
    ch:=#224
    end;
    'ع' :begin
    Ch:=#227;
    if((WinStr[i-1]=' ')or
    (WinStr[i-1]=#157)or
    (WinStr[i-1]='ا')or
    (WinStr[i-1]='و')or
    (WinStr[i-1]='د')or
    (WinStr[i-1]='ذ')or
    (WinStr[i-1]='ر')or
    (WinStr[i-1]='ز')or
    (WinStr[i-1]='ژ')or
    (i=1) )
    then
    ch:=#228;
    if ((WinStr[i+1]=' ') or (i=M)) then
    if (ch=#228) then
    ch:=#225
    else
    ch:=#226;
    end;
    'غ' :begin
    Ch:=#231;
    if((WinStr[i-1]=' ')or
    (WinStr[i-1]=#157)or
    (WinStr[i-1]='ا')or
    (WinStr[i-1]='و')or
    (WinStr[i-1]='د')or
    (WinStr[i-1]='ذ')or
    (WinStr[i-1]='ر')or
    (WinStr[i-1]='ز')or
    (WinStr[i-1]='ژ')or
    (i=1) )
    then
    ch:=#232;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    if (ch=#232) then
    ch:=#229
    else
    ch:=#230;
    end;
    'ف' :begin
    Ch:=#234;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#233;
    end;
    'ق' :begin
    Ch:=#236;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#235;
    end;
    'ك' :begin
    Ch:=#238;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#237;
    end;
    'گ' :begin
    Ch:=#240;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#239 ;
    end;
    'ل' :begin
    Ch:=#243;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#241;
    end;
    'م' :begin
    Ch:=#245;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ') or (WinStr[i+1]='آ')) then
    ch:=#244;
    end;
    'ن' :begin
    Ch:=#247;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#246;
    end;
    'و' :begin
    ch:=#248 ;
    end;
    'ه' :begin
    Ch:=#250;
    if((WinStr[i-1]=' ')or(WinStr[i-1]=#157)or(WinStr[i-1]='ا')or(WinStr[i-1]='و')or
    (WinStr[i-1]='د')or(WinStr[i-1]='ذ')or(WinStr[i-1]='ر')or(WinStr[i-1]='ز')or
    (WinStr[i-1]='ژ')or(i=1))
    then
    ch:=#251;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#249;
    end;
    'ي' :begin
    Ch:=#254;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#252;
    if (ord(WinStr[i])=236)then
    Ch:=#254;
    end;
    'ـ' :begin
    ch:=#139 ;
    end;
    else
    ch:=WinStr[i];
    end;


    if (Nflag=false) and(ch<>#0) and (DosI>0 )then
    begin
    N:=length(str1);
    for j:=N downto 1 do
    if (WinStr[i]<>#157) then
    begin
    DosSt[DosI]:=str1[j];
    Dec(DosI);
    end;


    if (WinStr[i]<>#157) then
    begin
    DosSt[DosI]:=Ch; Dec(DosI);
    end;


    str1:='';
    end;
    end;
    if (Nflag=True) and(ch=#0) and (DosI>0 )then
    begin
    N:=length(str1);
    for j:=N downto 1 do
    begin
    DosSt[DosI]:=str1[j];
    Dec(DosI);
    end;
    end;
    WinToDosStr:=copy(DosSt,2,length(DosSt));
    end;


    آخرین ویرایش به وسیله دلفــي : سه شنبه 06 اردیبهشت 1401 در 07:32 صبح

  4. #4
    کاربر دائمی
    تاریخ عضویت
    دی 1387
    محل زندگی
    اهواز
    پست
    928

    نقل قول: تابع Windows String To Dos String

    نقل قول نوشته شده توسط دلفــي مشاهده تاپیک

    function WinToDosStr(WinStr:string):string;
    var Nflag :boolean;
    Ch : Char;
    T,N,M,I,J,DosI :integer;
    TmpStr,Str1,Str2 :String;
    DosSt :String;
    begin
    DosSt:='';
    WinStr:=WinStr+' ';
    M:=length(WinStr);
    for I:=1 to M do
    DosSt:=DosSt + #32;
    DosI:=M;
    Str1:='';
    for I:=1 To M do
    begin
    Nflag:=False;
    case WinStr[i] Of
    ' ' :Begin
    Ch:=#32;
    end;

    '.','0' .. '9'
    : begin
    Ch:=chr(ord(WinStr[i])+80);
    if (WinStr[i])='.' then
    ch:=#140;
    str1:=str1+ch;
    Nflag:=true;
    ch:=#0;
    end;
    'a' .. 'z',
    'A' .. 'Z'
    : begin
    Ch:=WinStr[i];
    str1:=str1+ch;
    Nflag:=true;
    ch:=#0;
    end;
    'آ' :begin
    ch:=#141;
    end;
    'ئ' :Begin
    Ch:=#142;
    end;
    'ء' :Begin
    Ch:=#143;
    end;
    'ا' :begin
    Ch:=#145;
    if((WinStr[i-1]=' ')or
    (WinStr[i-1]=#157)or
    (WinStr[i-1]='ا')or
    (WinStr[i-1]='و')or
    (WinStr[i-1]='د')or
    (WinStr[i-1]='ذ')or
    (WinStr[i-1]='ر')or
    (WinStr[i-1]='ز')or
    (WinStr[i-1]='ژ')or
    (i=1 )
    )
    then
    ch:=#144;
    end;
    'ب' : begin
    Ch:=#147;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    Ch:=#146;
    end;
    'پ' : begin
    Ch:=#149;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    Ch:=#148;
    end;
    'ت' :begin
    Ch:=#151;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    Ch:=#150;
    end;
    'ث' :begin
    Ch:=#153;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#152
    end;
    'ج' :begin
    Ch:=#155;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#154
    end;
    'چ' :begin
    Ch:=#157;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#156;
    end;
    'ح' :begin
    Ch:=#159;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#158;
    end;
    'خ' :begin
    Ch:=#161;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#160;
    end;
    'د' :begin
    Ch:=#162;
    end;
    'ذ' :begin
    Ch:=#163;
    end;
    'ر' :begin
    Ch:=#164;
    end;
    'ز' :begin
    Ch:=#165;
    end;
    'ژ' :begin
    Ch:=#166;
    end;
    'س' :begin
    Ch:=#168;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    Ch:=#167;
    end;
    'ش' :begin
    Ch:=#170;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#169;
    end;
    'ص' :begin
    Ch:=#172;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#171;
    end;
    'ض' :begin
    Ch:=#174;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#173;
    end;
    'ط' :begin
    ch:=#175 ;
    end;
    'ظ' :begin
    ch:=#224
    end;
    'ع' :begin
    Ch:=#227;
    if((WinStr[i-1]=' ')or
    (WinStr[i-1]=#157)or
    (WinStr[i-1]='ا')or
    (WinStr[i-1]='و')or
    (WinStr[i-1]='د')or
    (WinStr[i-1]='ذ')or
    (WinStr[i-1]='ر')or
    (WinStr[i-1]='ز')or
    (WinStr[i-1]='ژ')or
    (i=1) )
    then
    ch:=#228;
    if ((WinStr[i+1]=' ') or (i=M)) then
    if (ch=#228) then
    ch:=#225
    else
    ch:=#226;
    end;
    'غ' :begin
    Ch:=#231;
    if((WinStr[i-1]=' ')or
    (WinStr[i-1]=#157)or
    (WinStr[i-1]='ا')or
    (WinStr[i-1]='و')or
    (WinStr[i-1]='د')or
    (WinStr[i-1]='ذ')or
    (WinStr[i-1]='ر')or
    (WinStr[i-1]='ز')or
    (WinStr[i-1]='ژ')or
    (i=1) )
    then
    ch:=#232;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    if (ch=#232) then
    ch:=#229
    else
    ch:=#230;

    end;
    'ف' :begin
    Ch:=#234;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#233;
    end;
    'ق' :begin
    Ch:=#236;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#235;
    end;
    'ك' :begin
    Ch:=#238;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#237;
    end;
    'گ' :begin
    Ch:=#240;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#239 ;
    end;
    'ل' :begin
    Ch:=#243;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#241;
    end;
    'م' :begin
    Ch:=#245;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ') or (WinStr[i+1]='آ')) then
    ch:=#244;
    end;
    'ن' :begin
    Ch:=#247;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#246;
    end;
    'و' :begin
    ch:=#248 ;
    end;
    'ه' :begin
    Ch:=#250;
    if((WinStr[i-1]=' ')or
    (WinStr[i-1]=#157)or
    (WinStr[i-1]='ا')or
    (WinStr[i-1]='و')or
    (WinStr[i-1]='د')or
    (WinStr[i-1]='ذ')or
    (WinStr[i-1]='ر')or
    (WinStr[i-1]='ز')or
    (WinStr[i-1]='ژ')or
    (i=1 ))
    then
    ch:=#251;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#249;
    end;
    'ي' :begin
    Ch:=#254;
    if ((WinStr[i+1]=#157) or (WinStr[i+1]=' ')) then
    ch:=#252;
    if (ord(WinStr[i])=236)then
    Ch:=#254;
    end;
    'ـ' :begin
    ch:=#139 ;
    end;
    else
    ch:=WinStr[i];
    end;

    if (Nflag=false) and(ch<>#0) and (DosI>0 )then
    begin
    N:=length(str1);
    for j:=N downto 1 do
    if (WinStr[i]<>#157) then
    begin
    DosSt[DosI]:=str1[j];
    Dec(DosI);
    end;

    if (WinStr[i]<>#157) then
    begin
    DosSt[DosI]:=Ch; Dec(DosI);
    end;

    str1:='';
    end;
    end;
    if (Nflag=True) and(ch=#0) and (DosI>0 )then
    begin
    N:=length(str1);
    for j:=N downto 1 do
    begin
    DosSt[DosI]:=str1[j];
    Dec(DosI);
    end;
    end;

    WinToDosStr:=copy(DosSt,2,length(DosSt));

    end;


    ضمن قدردانی از شما دوست گرامی در صورت امکان تبدیل رشته داس به ویندوز را هم
    لطف کرده و در اختیار سایرین قرار دهید. در هر صورت متشکرم.

  5. #5

    Lightbulb نقل قول: تابع Windows String To Dos String

    نقل قول نوشته شده توسط khoshblagh مشاهده تاپیک
    ضمن قدردانی از شما دوست گرامی در صورت امکان تبدیل رشته داس به ویندوز را هم
    لطف کرده و در اختیار سایرین قرار دهید. در هر صورت متشکرم.
    قبلا دوستان زحمتش رو كشيدن :

    http://www.barnamenevis.org/do...?do=file&id=26

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •