delphi4arab منتديات دلفي للعرب

نسخة كاملة : كيف أرتب كلمات ملف نصي من ال a الى z ؟
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2

محتوى ملفي عباره عن كلمات (كل كلمه في سطر )
كيف أرتب هذه الكلمات من ال a الى z ؟
السلام عليكم
يمكن فتح الملف في مكون TListbox بواسطة الإجراء LoadFromFile، وضبط خاصية Sorted على القيمة True.
للتوضيح

عمل برنامج يقرأ الكلمات من ملف تكست ثم يرتب الكلمات ابجديا لتكتب في ملف تكست أخر ، إستخدام خاصيه الليست بوكس لا تساعدني في هذا العمل
فقط أظف هده الدالة :

كود :
Procedure LoadFileS(FilePath : String); Var List:TStringList; Begin List:=TStringList.Create; List.LoadFromFile(FilePath); List.Sorted:=True; List.SaveToFile(FilePath); List.Free; End;

يمكنك التعديل على مكان الحفظ فقط أنا عملتها تعدل على الملف في حد ذاته :

كود :
procedure TForm1.Button1Click(Sender: TObject); begin LoadFileS('1.txt'); end;
لكن من الأحسن أن نقوم بالتحقق من نوع الملف (*.txt ليس بالضرورة تعني أنه نصي)

لذا نضيف دالة للتحقق من نوع الملف (ShellApi : Uses):

كود :
Function MrsGetFileType(const strFilename: string): string; var FileInfo: TSHFileInfo; begin FillChar(FileInfo, SizeOf(FileInfo), #0); SHGetFileInfo(PChar(strFilename), 0, FileInfo, SizeOf(FileInfo), SHGFI_TYPENAME); Result := FileInfo.szTypeName; end;

كود :
ShowMessage('File type is: ' + MrsGetFileType('1.txt'));

و عليه يمكنك الأن العمل بكل حرية مع تغييرات بسيطة على الكود.
او ... ?

PHP كود :
procedure Sor_Str(TSL: TStringList; S: string);
begin
   TSL
.LoadFromFile(S);
   
TSL.Sorted := True;
   
TSL.SaveToFile(S);
end; 

PHP كود :
Sor_Str(TStringList.Create,'c:\a.txt'); 
لكن أليس من الأحسن بما أنك أنشأء صنف تحريره ؟؟.

الهدف من الامر الإعتماد مباشرة من الصنف دون إستعمال المركبات.

بالتوفيق ,,
كيف احرره ?
شكرا على تجابكم
يس للأسف البرنامج بيوقف عند (TSL.Sorted := True;
) وماأعرف ليش

جزاكم الله خيرا
السلام علكم

كود :
procedure TForm1.Button1Click(Sender: TObject); Var DataList : TStringList; SFilePath : String; begin If Not PromptForFileName(SFilePath,'Text files (*.txt)|*.txt','','Select your project file','',False) Then Exit; Try DataList:=TStringList.Create; DataList.LoadFromFile(SFilePath); DataList.Sort; DataList.SaveToFile(SFilePath); Finally DataList.Free; End;

بالتوفيق ,,
الصفحات : 1 2