delphi4arab منتديات دلفي للعرب
كيف استبدل حروف الكلمات بارقام من ملف نصي - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : كيف استبدل حروف الكلمات بارقام من ملف نصي (/showthread.php?tid=151)

الصفحات: 1 2


كيف استبدل حروف الكلمات بارقام من ملف نصي - اسامه الحكيم - 10-10-2014

s.fateh كتب :الفكرة ان نقوم بانشاء جدول يحتوي على الحرف و ما يقابله من كلمة/ رقم نريد تشفيره

s.fateh
شكرا جزيلا ولو انها متأخره كثيرا
واجهتنى مشكله فى تجميع الكود هل من الممكن تحويل الكود الى سورس
ولكم تحياتى


كيف استبدل حروف الكلمات بارقام من ملف نصي - S.FATEH - 13-10-2014

السلام عليكم
تحتاج الى مكونين Memo ;
تحتاج الى مكون Button1
تحتاج الى ملف نسيc:\Data.txt تضع فيه قاموس الكلمات الخاص بك و هاهي الوحدة
PHP كود :
unit Unit1;

interface

uses
  Winapi
.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TCrypt 
= record
    Alpha
: string;
    
Crypt: string;
  
end;

type
  TForm1 
= class(TForm)
    
Button1: TButton;
    
Memo1: TMemo;
    
Memo2: TMemo;
    
procedure Button1Click(Sender: TObject);
  private
    
CryptTable: array of TCrypt;
    
procedure CreateCryptTable;
    
procedure ReplaceStr(var Str: string);
  public
    { Public 
declarations }
  
end;

var
  
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  
StringList: TStringList;
  
i: Integer;
  
TmpStr: string;
begin
  CreateCryptTable
;
  
StringList := TStringList.Create;
  try
    
StringList.Assign(Memo1.Lines);
    for 
I := 0 to StringList.Count - 1 do
    
begin
      TmpStr 
:= StringList[i];
      
ReplaceStr(TmpStr);
      
StringList[i] := TmpStr;
      
Memo2.Lines.Add(StringList[i]);
    
end;
  finally
    
StringList.Free;
  
end;
end;

procedure TForm1.ReplaceStr(var Str: string);
var
  
i: Integer;
  
x: Integer;
begin
  
for I := Length(Str) downto 1 do
  
begin
    
for x := 0 to Length(CryptTable) - 1 do
    
begin
      
if Str[I] = CryptTable[x].Alpha then
        Str 
:= StringReplace(Str, Str[i], CryptTable[x].Crypt, []);
    
end;
  
end;
end;

procedure TForm1.CreateCryptTable;
var
  
StringList: TStringList;
  
I: Integer;
begin
  StringList 
:= TStringList.Create;
  try
    
StringList.LoadFromFile('c:\Data.txt');
    
SetLength(CryptTable, StringList.Count);
    for 
I := 0 to StringList.Count -1  do
    
begin
      CryptTable
[i].Alpha := Copy(StringList[i], 1, Pos(' ', StringList[i]) - 1);
      
CryptTable[i].Crypt := Copy(StringList[i], Pos(' ', StringList[i]) + 1, Length(StringList[i]));
    
end;
  finally
    
StringList.Free;
  
end;
end;

end. 



كيف استبدل حروف الكلمات بارقام من ملف نصي - محمد الدرة - 13-10-2014

بالنسبة لهذه المشكلة
إقتباس :لا يزال الوصف ناقص
فانت تقول يتم استبدال الحروف بارقام من 1 الى 24
فان كان لديك هذا 1221 فكيف تعرف
هل هو 2 22 1
ام هو 21 12
ام هو 1 2 2 1
والسلام عليكم ورحمة الله

الحل بسيط جدا يكفي ان نعرف اكبر رقم كم يمثل بالخانات فاذا كان يمثل بالعشرات فالاراقام الاولى تكون كالتالي
01
02
03
اما اذا كان خاناته في 100
فسيكون 001
002
003
وهكذا
بالتوفيق


كيف استبدل حروف الكلمات بارقام من ملف نصي - اسامه الحكيم - 13-10-2014

s.fateh كتب :تحتاج الى مكونين memo ;
أولا شكرا لك وجزاك الله خيرا

ولكن جربت الكود ولم يظبط معى
الميمو الاول سأكتب فيه الحروف العربيه كأى اسم مثلا سيظهر لى فى الميمو الثانى ما يقابل هذه الحروف العربيه بما يقابلها من رموز الهيكس
وايضا لو كتبت رموز هيكس فى الميمو الاول سيظهر لى ما يقابلها بالحروف العربيه فى الميمو الثانى
وشكرا جزيلا