22-02-2010, 04:48 PM
[COLOR="RoyalBlue"]النسخة السابقة كانت بطيئه لانها كنت تعتميد علي مبدأ "Brute Forcing".
هذه النسخة فكرتها بسيطة:
- يقوم البرنامج بتحميل ملف القاموس فى مصفوفة (Dictionary Array).
- يقوم بترتيب كل كلمة فى مصفوفة القاموس ترتيبا ابجديا فى مصفوفة اخري,
مثال: لو ان كلمة (efab) موجودة فى مصفوفة القاموس, ستكون (abef) فى المصفوفة المُرتبة.
- عندما يدخل المستخدم كلمة غير مرتبة للبحث عن ترتيبها الصحيح, يقوم البرنامج بترتيب الكلمة المدخلة ترتيبا ابجديا.
- بذلك ستجد أن, مهما اختلف ترتيب الكلمة, سيقوم البرنامج بتريبها ترتيب معين (الترتيب الابجدي).
[/COLOR]
- اذا كان لديكم افكار اخري للبرنامج (ترتيب الاحرف لاستخلاص كلمات) او خورزميات للترتيب (Sorting Algorithms), فشاركوني بها, و ساكون شاكر لكم.
هذه النسخة فكرتها بسيطة:
- يقوم البرنامج بتحميل ملف القاموس فى مصفوفة (Dictionary Array).
- يقوم بترتيب كل كلمة فى مصفوفة القاموس ترتيبا ابجديا فى مصفوفة اخري,
مثال: لو ان كلمة (efab) موجودة فى مصفوفة القاموس, ستكون (abef) فى المصفوفة المُرتبة.
- عندما يدخل المستخدم كلمة غير مرتبة للبحث عن ترتيبها الصحيح, يقوم البرنامج بترتيب الكلمة المدخلة ترتيبا ابجديا.
- بذلك ستجد أن, مهما اختلف ترتيب الكلمة, سيقوم البرنامج بتريبها ترتيب معين (الترتيب الابجدي).
[/COLOR]
PHP كود :
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
DictionaryArray, SortedArray : array[0..2000] of string;
implementation
{$R *.dfm}
Function SortWordAlphabetically(Word : String): String;
Const LowAlphabets : string = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
var SortedWord : String;
i,j : Integer;
begin
for i := 1 to Length(LowAlphabets) do begin
for j := 1 to Length(Word) do begin
If LowAlphabets[i] = Word[j] then begin
SortedWord := SortedWord + LowAlphabets[i];
Break;
end;
end;
If Length(SortedWord) = Length(Word) then
Break;
end;
Result := SortedWord;
end;
procedure LoadDictionary(Path : String);
var F : TextFile;
i : Integer;
begin
i := 0;
AssignFile(F,Path);
Reset(F);
While Not Eof(F) do begin
Readln(F,DictionaryArray[i]);
Inc(i);
end;
CloseFile(F);
For i := 0 to Length(DictionaryArray) - 1 do
SortedArray[i] := SortWordAlphabetically(DictionaryArray[i]);
Form1.Label1.Caption := 'Dictonary loaded.';
Form1.Label1.Font.Color := clGreen;
end;
procedure TForm1.Button1Click(Sender: TObject);
var RandedWord : String;
i : Integer;
begin
RandedWord := SortWordAlphabetically(Edit1.Text);
For i := 1 to Length(SortedArray) - 1 do
If Pos(RandedWord,SortedArray[i]) <> 0 then
Edit2.Text := DictionaryArray[i];
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
LoadDictionary('wordlist.txt');
end;
end.
- اذا كان لديكم افكار اخري للبرنامج (ترتيب الاحرف لاستخلاص كلمات) او خورزميات للترتيب (Sorting Algorithms), فشاركوني بها, و ساكون شاكر لكم.

