Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Per supportare la codifica dei caratteri personalizzata, è necessario implementare una classe di codifica personalizzata derivando dalla classe Codifica microsoft .NET Framework, quindi creare un componente della pipeline di file flat personalizzato ereditando dal componente Standard Flat File Disassembler o Flat File Assembler. È possibile fornire una nuova istanza di codifica al motore di analisi eseguendo l'override del metodo virtuale protetto FFDasmComp.GetDataReader , come illustrato nell'esempio seguente.
/// <summary>
/// Gets a data reader instance
/// </summary>
/// <param name="dataStream">Data stream</param>
/// <param name="dataEncoding">Data encoding</param>
/// <param name="detectEncodingFromByteOrderMarks">Detect encoding from a byte order mark</param>
/// <returns>IDataReader instance</returns>
protected override IDataReader GetDataReader(Stream dataStream, Encoding dataEncoding, bool detectEncodingFromByteOrderMarks)
{
// Delegate call to the base implementation passing fixed UTF-7 encoding
return base.GetDataReader(dataStream, new CustomEncoding(), false);
}
Uso di classi di codifica predefinite
I tipi di codifica seguenti sono predefiniti da Microsoft .NET Framework e possono essere usati per costruire il parser:
ASCII
UTF7
UTF8
Unicode (UTF16)
XmlReader xr = docspec.Parse(new DataReader(System.Text.Encoding.UTF8));
Uso delle pagine di codice supportate
Usare il codice seguente per supportare Shift-JIS (tabella codici 932).
XmlReader xr = docspec.Parse(new DataReader(System.Text.Encoding.GetEncoding(932)));
Uso di una classe di codifica privata
È possibile creare una classe di codifica personalizzata che deriva dalla classe astratta System.Text.Encoding ed eseguire la propria codifica e decodifica.
class MyEncoding : System.Text.Encoding
{
// overriding methods omitted
}
XmlReader xr = docspec.Parser(new DataReader(new MyEncoding()));
Uso di una classe DataReader privata
È possibile creare una classe DataReader personalizzata che implementa l'interfaccia ed esegue la IDataReader lettura senza creare classi di codifica.
class MyDataReader : IDataReader
{
// Implement data reader functions
// ...
}
XmlReader xr = docspec.Parse(new MyDataReader());