में स्ट्रिंग में फ़ाइल की सामग्री को कैसे पढ़ा जाता है, मैं अपने आवेदन को डेल्फी 2007 से डेल्फी xe में माइग्रेट कर रहा हूं, लेकिन मुझे एक ऐसी प्रक्रिया में समस्या है जो फ़ाइल (एएससीआई) पढ़ती है और सामग्री को स्ट्रिंगडेल्फी XE
में संग्रहीत करती है इसकोड डेल्फी 2007
function LoadFileToStr(const FileName: TFileName): String;
var
FileStream : TFileStream;
begin
FileStream:= TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
try
if FileStream.Size>0 then
begin
SetLength(Result, FileStream.Size);
FileStream.Read(Pointer(Result)^, FileStream.Size);
end;
finally
FileStream.Free;
end;
end;
में ठीक काम करते हैं लेकिन जब डेल्फी XE में परिणाम के लिए इस कोड को निष्पादित जैसे '????????' प्रतीकों जो डेल्फी XE, मुझे पता कर रहे हैं यूनिकोड है इसलिए मैं इन पंक्तियों को बदलता हूं
SetLength(Result, FileStream.Size);
FileStream.Read(Pointer(Result)^, FileStream.Size);
SetLength(Result, FileStream.Size*2);
FileStream.Read(Pointer(Result)^, FileStream.Size);
को यूनिकोड स्ट्रिंग में फ़ाइल की सामग्री स्टोर करने के लिए, लेकिन परिणाम एक ही है।
how i can fix this procedure to read the content of this file?
TStringList से सावधान रहें, क्योंकि यदि 'टेक्स्ट' फ़ाइल में किसी भी तरह ASCII NUL (0x00) वर्ण होते हैं, तो पार्सर बंद हो जाता है और आप फ़ाइल में वास्तव में कम लाइनों के साथ समाप्त होते हैं। –