2010-04-22 12 views
5

Delphi 2010Delphi standard pagina Codice Input Output

Quando la lettura dal file utilizzando readLn procedura, per impostazione predefinita ottengo stringa unicode convertito da codici 1251 (tabella codici di Windows).

Come posso modificare questo e leggere dal file in un'altra tabella codici, in 1252 o UTF16?

risposta

0

È possibile utilizzare un TStreamReader: è possibile specificare quale codifica si desidera leggere al momento della sua costruzione.

Ad esempio, TStreamReader.Create(FileName, TEncoding.UTF8); creerà un TStreamReader che può essere utilizzato per leggere il testo dal file specificato in FileName, utilizzando UTF-8 come codifica.

+0

-1. Ci sono due aspetti della domanda che questa risposta non affronta. Uno è che la sorgente dell'input è stdin, non un file su disco. L'altro è che il codice corrente usa 'readln', non un flusso. (Se ciò accade perché 'readln' usa sempre la tabella codici di Windows, allora va bene, ma per favore ditelo, altrimenti sembra che abbiate ignorato i dettagli della domanda.) –

2

Non utilizzare ReadLn/WriteLn per nuovo codice. Come suggerito da Michael Madsen usa TStreamReader in SysUtils.