كيف أرتب كلمات ملف نصي من ال a الى z ؟
#1

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

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

كود :
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;
I'M Fly Like A G6

الرد
#5
لكن من الأحسن أن نقوم بالتحقق من نوع الملف (*.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'));

و عليه يمكنك الأن العمل بكل حرية مع تغييرات بسيطة على الكود.
I'M Fly Like A G6

الرد
#6
او ... ?

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'); 
الرد
#7
لكن أليس من الأحسن بما أنك أنشأء صنف تحريره ؟؟.

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

بالتوفيق ,,
I'M Fly Like A G6

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

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

كود :
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;

بالتوفيق ,,
I'M Fly Like A G6

الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم