2010-09-01 13 views
5

CreateFile() ve WriteFile() kullanılarak oluşturulan bir çizgi yönelimli metin dosyası (Unicode) var.Yerel metin kullanarak 'C' içindeki metin dosyasını (Unicode) okuyun

Bu dosyayı ReadFile() yöntemini kullanarak bir ikili akış olarak okumak kolaydır, ancak satırlara ayırmak için ekstra düşük düzey işlem gerekir.

Benim için bunu yapan bir Win32 işlevi var mı?

Tekrar, 'C' (C++ değil) olduğunu ve readline() gibi POSIX/ANSI C işlevlerini kullanmak istemediğimi lütfen unutmayın.

Yukarıdaki sorunun cevabı negatifse, yalnızca yerel Win32 C işlevlerini kullanarak satır yönelimli bir metin dosyasını okumak için "en kısa kod" ne olurdu? Örneğin. ReadFile(), StrChr() kullanarak, vb.

Teşekkürler.

+1

Bunu mu demek istediniz: UTF-16LE? – dreamlax

+0

Evet. UTF-16, Küçük Endian. –

+0

Ugh. MSVC CRT bunu destekler. fopen() modu argümanında "ccs", sonra sadece fgetws(). –

cevap

4

AFAIK dosya satırını okumak için win32 işlevi yoktur.

+0

Bu benim incelemesine şimdiye kadar gözlemlenen de buydu: http://msdn.microsoft.com/en-us/library/aa364232%28VS.85%29.aspx Ama bir şey eksik olabilir. http://www.apitalk.com/windows-Programming/Why-Unicode-Is-Important-Before-You-Start-To-: –

+0

aşağıdaki harika makale var hayır Win32) (eşdeğer aldığını su götürmez bir şekilde göstermektedir Program.html Bu yüzden benim için sonraki adım, bunu ReadFile() ve StrChr() kullanarak taklit etmek için kendi işlevimi oluşturmaktır. –

+0

Bu apitalk.com bağlantısı öldü ... [Bu bir] (http://support.microsoft.com/kb/99456) değildir ve sonucunuzu doğrular. – WinWin