معرفة إذا كان الملف نصي ام لا
#11
حتى انا اقصد ascii files
الرد
#12
إدن يمكنك إعتماد حل الأخ عبد العزيز ... .
I'M Fly Like A G6

الرد
#13
لقد حلت المشكلة بإذن الله وسوف اطرح الكود لعلى و عسى يحتاجه احد في يوما ما :

كود :
Type TTxtFileType = (txTxtOrBin{Default}, txUTF8, // Utf-8 encoding txUNICODE, // Unicode ENCODING txUNIBIG // unicode Big endian ); TTxtFileSign = record Code : TTxtFileType; Sign : LongWord; Mask : LongWord; end; const TxtSignsCount = 3; TxtSign_UTF8 : TTxtFileSign = (Code: txUTF8; Sign:$00BFBBEF; Mask: $00FFFFFF); TxtSign_UNICODE : TTxtFileSign = (Code: txUNICODE; Sign:$0000FEFF; Mask: $FF00FFFF); TxtSign_UNIBIG : TTxtFileSign = (Code: txUNIBIG; Sign:$0000FFFE; Mask: $00FFFFFF); var TxtFileSigns : array[0..2] of TTxtFileSign = ( (Code: txUTF8; Sign:$00BFBBEF; Mask: $00FFFFFF), (Code: txUNICODE; Sign:$0000FEFF; Mask: $0000FFFF), (Code: txUNIBIG; Sign:$0000FFFE; Mask: $0000FFFF)); function TypeOfTextfile(const filename: string): TTxtFileType; var Target : TFileStream; Sign : LongWord; N : integer; begin Target := TFileStream.Create(FileName, fmOpenRead); try {# 1st With BOOM #} Target.Read(Sign, 4); finally Flux.Free; end; {# Default file is Ansi-encoding or Binary # } result := txTxtOrBin; for N := 0 to High(TxtFileSigns) do begin if (Sign and TxtFileSigns[N].Mask) = TxtFileSigns[N].Sign then begin result := TxtFileSigns[N].Code; break; end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin {# Op is an TOpenDialog # } if not op.Execute then exit; Case TypeOfTextfile(op.FileName) of txTxtOrBin:Label2.Caption:='Ansi-Encoding or a Binary File'; txUTF8:Label2.Caption:='UTF-8 encoding '; txUNICODE:Label2.Caption:='UNICODE encoding '; txUNIBIG:Label2.Caption:='UNIBIG encoding '; end; end;

**
محمد

**
والسلام عليكم
الرد
#14
mohfa كتب :اغلب الملفات الصية تملك BOM إلا ال Ansi-encoding files اعني ال Pure Text File .
Byte Order Mark بصمة في بداية الملف النصي حديثة حداثة اليونكود UNICODE
وقبل ذلك غير ممكن معرفة الملف النصي كما قلت سابقا الا بفحصه كليا

إقتباس :لقد حلت المشكلة بإذن الله وسوف اطرح الكود
الكود ماخوذ من
http://www.delphifr.com/codes/CONNAITRE-...34491.aspx
وهو ناقص لانه يتفترض ان الملف نصي ان لم يجد بصمة Unicode
الرد
#15
نعم اخي محمد وقد قمت ببعض الإظافات

واظن ان هذا هو الحل الذي سوف اعتمد عليه
الرد
#16
فقط برنامج بسيط جد صغير الحجم مصمم بالدلفي يعتمد على الـ Api هدا كله للتجريب ... على أساس ماكنت أعتقد
بالنسبة للحل .
I'M Fly Like A G6

الرد
#17
اذا قم به فيمكن ان يحتاجه البعض يوما ما .
وبارك الله فيك اخي tf6mehboul
الرد
#18
بإدن الله عند الحاجة طبعا .
I'M Fly Like A G6

الرد
#19
افتراض وجود البصمة لا بفلح دائماً

عندما حوّلت موقعي إلى تنسيق utf-8 استخدمت المحرر notepad++ وكنت لافهم معنى BOM فظهرت مشاكل في إرسال رؤوس الصفحات والتي معناها ارسال نصوص إلى المتصفح تسبق الرأس،
واحترت كثيراً فقلت في نفسي جرب الخيار [Encode UTF-8 without BOM] لكل صفحات قوالب الموقع، وبعدها توقفت المشاكل .

وأنا إلى هذه اللحظة لا أفهم معنى وجود هذه المشكلة مع وجود البصمة BOM .
وإن تقدم ذو تقوى بصالحةٍ *** قدمتُ بين يديه عبرة الندمِ
الرد


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


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