Sistema de codificación de archivos

10/12/2003 - 09:58 por Oscar Rodriguez | Informe spam
Hola a todos.
Me gustaría saber si existe algún método para averiguar la codificación de
un archivo en .net, es decir si presenta una codificación ASCII, UTF-8 o
UNICODE. Ya que a la hora de abrir un fichero hay que especificar la
codificación que usa este para trabajar correctamente sobre él.
Gracias por adelantado

Preguntas similare

Leer las respuestas

#1 Pablo O. Abbate
10/12/2003 - 14:34 | Informe spam
Oscar:

¿A que tipo de archivo te refieres?
¿Podrías enviar un ejemplo del código que utilizas para abrir dicho archivo?



Pablo O. Abbate
MCDBA - MCAD - MCSD - MCT
www.auladat.es

"Oscar Rodriguez" escribió en el mensaje
news:
Hola a todos.
Me gustaría saber si existe algún método para averiguar la codificación de
un archivo en .net, es decir si presenta una codificación ASCII, UTF-8 o
UNICODE. Ya que a la hora de abrir un fichero hay que especificar la
codificación que usa este para trabajar correctamente sobre él.
Gracias por adelantado


Respuesta Responder a este mensaje
#2 Oscar Rodriguez
10/12/2003 - 15:57 | Informe spam
Me refiero a cualquier fichero de texto plano independientemente de la
codificacion que use este

Esto es un ejemplo de una utilidad para remplazar texto en archivos xml. en
este caso puedo saber normalmente la codificacion que tienen ya que esta se
suele ser la primera linea, pero no siempre ocurre

El motivo de abrilo con la codificación adecuada sirve para que trate bien
las tildes de las palabras.
For Each item In listArchivos.Items

If item.Checked = True Then

Select Case item.SubItems(2).Text

Case "UTF-8"

t = New System.IO.StreamReader(item.SubItems(1).Text,
System.Text.Encoding.UTF8)

Case "ASCII"

t = New System.IO.StreamReader(item.SubItems(1).Text,
System.Text.Encoding.Default)

Case "UNICODE"

t = New System.IO.StreamReader(item.SubItems(1).Text,
System.Text.Encoding.Unicode)

End Select

sLine = t.ReadToEnd

t.Close()

Dim odr As DataRow

For Each odr In odt.Rows

Dim stringtosearch As String

Dim stringtoreplace As String

stringtosearch = odr.Item(1).ToString

stringtoreplace = odr.Item(2).ToString

sLine = sLine.Replace(stringtosearch, stringtoreplace)

Next

Dim sw As StreamWriter = New StreamWriter(item.SubItems(1).Text)

sw.Write(sLine)

sw.Close()

End If

Next

"Pablo O. Abbate" escribió en el mensaje
news:
Oscar:

¿A que tipo de archivo te refieres?
¿Podrías enviar un ejemplo del código que utilizas para abrir dicho


archivo?



Pablo O. Abbate
MCDBA - MCAD - MCSD - MCT
www.auladat.es

"Oscar Rodriguez" escribió en el mensaje
news:
> Hola a todos.
> Me gustaría saber si existe algún método para averiguar la codificación


de
> un archivo en .net, es decir si presenta una codificación ASCII, UTF-8 o
> UNICODE. Ya que a la hora de abrir un fichero hay que especificar la
> codificación que usa este para trabajar correctamente sobre él.
> Gracias por adelantado
>
>


Respuesta Responder a este mensaje
#3 Pablo O. Abbate
10/12/2003 - 17:54 | Informe spam
El .NET Framework ofrece un namespace completo para tratar archivos XML
mediante sus propias clases. Las encontrarás en System.XML,
System.XML.Schema, etc.

Estas clases te permiten manejar documentos XML como tales, sin la necesidad
de tratarlos como archivos de texto. Puedes utilizar XmlTextReader para leer
el contenido de los nodos de un documento, XMLValidatingReader para validar
el documento o bien utilizar XPath para acceder a nodos claves dentro del
documento y existen muchas clases más...

Esto evita que te lies con la codificación del documento, dado que quien la
realiza es .NET.
La ayuda en línea ofrece muy buenos ejemplos al respecto.

Te envío un ejemplo de código escrito por MS para que lo mires:

namespace HowTo.Samples.XML
{

using System;
using System.IO;
using System.Xml;

public class LoadXmlDocumentSample
{
private const String document = "books.xml";

public static void Main()
{
LoadXmlDocumentSample myLoadXmlDocumentSample = new
LoadXmlDocumentSample();
myLoadXmlDocumentSample.Run(document);
}

public void Run(String args)
{
try
{
// Load the XML from file
Console.WriteLine ();
Console.WriteLine ("Cargar el archivo {0}...", args);

XmlDataDocument myXmlDocument = new XmlDataDocument();
myXmlDocument.Load (args);

Console.WriteLine ("Los datos XML se han cargado correctamente
en el objeto XmlDataDocument...");

// Display the XML document.
myXmlDocument.Save(Console.Out);
}
catch (Exception e)
{
Console.WriteLine ("Excepcin: {0}", e.ToString());
}
}

} // End class LoadXmlDocumentSample
} // End namespace HowTo.Samples.XML


Un saludo.


Pablo O. Abbate
MCDBA - MCAD - MCSD - MCT
www.auladat.es



"Oscar Rodriguez" escribió en el mensaje
news:
Me refiero a cualquier fichero de texto plano independientemente de la
codificacion que use este

Esto es un ejemplo de una utilidad para remplazar texto en archivos xml.


en
este caso puedo saber normalmente la codificacion que tienen ya que esta


se
suele ser la primera linea, pero no siempre ocurre

El motivo de abrilo con la codificación adecuada sirve para que trate bien
las tildes de las palabras.
For Each item In listArchivos.Items

If item.Checked = True Then

Select Case item.SubItems(2).Text

Case "UTF-8"

t = New System.IO.StreamReader(item.SubItems(1).Text,
System.Text.Encoding.UTF8)

Case "ASCII"

t = New System.IO.StreamReader(item.SubItems(1).Text,
System.Text.Encoding.Default)

Case "UNICODE"

t = New System.IO.StreamReader(item.SubItems(1).Text,
System.Text.Encoding.Unicode)

End Select

sLine = t.ReadToEnd

t.Close()

Dim odr As DataRow

For Each odr In odt.Rows

Dim stringtosearch As String

Dim stringtoreplace As String

stringtosearch = odr.Item(1).ToString

stringtoreplace = odr.Item(2).ToString

sLine = sLine.Replace(stringtosearch, stringtoreplace)

Next

Dim sw As StreamWriter = New StreamWriter(item.SubItems(1).Text)

sw.Write(sLine)

sw.Close()

End If

Next

"Pablo O. Abbate" escribió en el mensaje
news:
> Oscar:
>
> ¿A que tipo de archivo te refieres?
> ¿Podrías enviar un ejemplo del código que utilizas para abrir dicho
archivo?
>
>
>
> Pablo O. Abbate
> MCDBA - MCAD - MCSD - MCT
> www.auladat.es
>
> "Oscar Rodriguez" escribió en el mensaje
> news:
> > Hola a todos.
> > Me gustaría saber si existe algún método para averiguar la


codificación
de
> > un archivo en .net, es decir si presenta una codificación ASCII, UTF-8


o
> > UNICODE. Ya que a la hora de abrir un fichero hay que especificar la
> > codificación que usa este para trabajar correctamente sobre él.
> > Gracias por adelantado
> >
> >
>
>


Respuesta Responder a este mensaje
#4 Oscar Rodriguez
11/12/2003 - 08:54 | Informe spam
El problema es que el programa no solo tiene que funcionar para XML sino
para cualquier tipo de documento.
Lo que pretendo hacer es que valga para cualquier tipo de documento, además
los documentos sobre los que trabaje ya sea un simple documento de texto no
tienen que cumplir con ningún patron.
Gracias de todas formas por el interés mostrado

"Pablo O. Abbate" escribió en el mensaje
news:Ozds%
El .NET Framework ofrece un namespace completo para tratar archivos XML
mediante sus propias clases. Las encontrarás en System.XML,
System.XML.Schema, etc.

Estas clases te permiten manejar documentos XML como tales, sin la


necesidad
de tratarlos como archivos de texto. Puedes utilizar XmlTextReader para


leer
el contenido de los nodos de un documento, XMLValidatingReader para


validar
el documento o bien utilizar XPath para acceder a nodos claves dentro del
documento y existen muchas clases más...

Esto evita que te lies con la codificación del documento, dado que quien


la
realiza es .NET.
La ayuda en línea ofrece muy buenos ejemplos al respecto.

Te envío un ejemplo de código escrito por MS para que lo mires:

namespace HowTo.Samples.XML
{

using System;
using System.IO;
using System.Xml;

public class LoadXmlDocumentSample
{
private const String document = "books.xml";

public static void Main()
{
LoadXmlDocumentSample myLoadXmlDocumentSample = new
LoadXmlDocumentSample();
myLoadXmlDocumentSample.Run(document);
}

public void Run(String args)
{
try
{
// Load the XML from file
Console.WriteLine ();
Console.WriteLine ("Cargar el archivo {0}...", args);

XmlDataDocument myXmlDocument = new XmlDataDocument();
myXmlDocument.Load (args);

Console.WriteLine ("Los datos XML se han cargado correctamente
en el objeto XmlDataDocument...");

// Display the XML document.
myXmlDocument.Save(Console.Out);
}
catch (Exception e)
{
Console.WriteLine ("Excepcin: {0}", e.ToString());
}
}

} // End class LoadXmlDocumentSample
} // End namespace HowTo.Samples.XML


Un saludo.


Pablo O. Abbate
MCDBA - MCAD - MCSD - MCT
www.auladat.es



"Oscar Rodriguez" escribió en el mensaje
news:
> Me refiero a cualquier fichero de texto plano independientemente de la
> codificacion que use este
>
> Esto es un ejemplo de una utilidad para remplazar texto en archivos xml.
en
> este caso puedo saber normalmente la codificacion que tienen ya que esta
se
> suele ser la primera linea, pero no siempre ocurre
>
> El motivo de abrilo con la codificación adecuada sirve para que trate


bien
> las tildes de las palabras.
> For Each item In listArchivos.Items
>
> If item.Checked = True Then
>
> Select Case item.SubItems(2).Text
>
> Case "UTF-8"
>
> t = New System.IO.StreamReader(item.SubItems(1).Text,
> System.Text.Encoding.UTF8)
>
> Case "ASCII"
>
> t = New System.IO.StreamReader(item.SubItems(1).Text,
> System.Text.Encoding.Default)
>
> Case "UNICODE"
>
> t = New System.IO.StreamReader(item.SubItems(1).Text,
> System.Text.Encoding.Unicode)
>
> End Select
>
> sLine = t.ReadToEnd
>
> t.Close()
>
> Dim odr As DataRow
>
> For Each odr In odt.Rows
>
> Dim stringtosearch As String
>
> Dim stringtoreplace As String
>
> stringtosearch = odr.Item(1).ToString
>
> stringtoreplace = odr.Item(2).ToString
>
> sLine = sLine.Replace(stringtosearch, stringtoreplace)
>
> Next
>
> Dim sw As StreamWriter = New StreamWriter(item.SubItems(1).Text)
>
> sw.Write(sLine)
>
> sw.Close()
>
> End If
>
> Next
>
> "Pablo O. Abbate" escribió en el


mensaje
> news:
> > Oscar:
> >
> > ¿A que tipo de archivo te refieres?
> > ¿Podrías enviar un ejemplo del código que utilizas para abrir dicho
> archivo?
> >
> >
> >
> > Pablo O. Abbate
> > MCDBA - MCAD - MCSD - MCT
> > www.auladat.es
> >
> > "Oscar Rodriguez" escribió en el mensaje
> > news:
> > > Hola a todos.
> > > Me gustaría saber si existe algún método para averiguar la
codificación
> de
> > > un archivo en .net, es decir si presenta una codificación ASCII,


UTF-8
o
> > > UNICODE. Ya que a la hora de abrir un fichero hay que especificar la
> > > codificación que usa este para trabajar correctamente sobre él.
> > > Gracias por adelantado
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#5 Alberto Ortiz
11/12/2003 - 20:39 | Informe spam
Hola.
Mira en la ayuda: Encoding.GetPreamble



aoe(arroba)euskalnet.net
www.euskalnet.net/aoe



"Oscar Rodriguez" escribió en el mensaje news:
El problema es que el programa no solo tiene que funcionar para XML sino
para cualquier tipo de documento.
Lo que pretendo hacer es que valga para cualquier tipo de documento, además
los documentos sobre los que trabaje ya sea un simple documento de texto no
tienen que cumplir con ningún patron.
Gracias de todas formas por el interés mostrado

"Pablo O. Abbate" escribió en el mensaje
news:Ozds%
> El .NET Framework ofrece un namespace completo para tratar archivos XML
> mediante sus propias clases. Las encontrarás en System.XML,
> System.XML.Schema, etc.
>
> Estas clases te permiten manejar documentos XML como tales, sin la
necesidad
> de tratarlos como archivos de texto. Puedes utilizar XmlTextReader para
leer
> el contenido de los nodos de un documento, XMLValidatingReader para
validar
> el documento o bien utilizar XPath para acceder a nodos claves dentro del
> documento y existen muchas clases más...
>
> Esto evita que te lies con la codificación del documento, dado que quien
la
> realiza es .NET.
> La ayuda en línea ofrece muy buenos ejemplos al respecto.
>
> Te envío un ejemplo de código escrito por MS para que lo mires:
>
> namespace HowTo.Samples.XML
> {
>
> using System;
> using System.IO;
> using System.Xml;
>
> public class LoadXmlDocumentSample
> {
> private const String document = "books.xml";
>
> public static void Main()
> {
> LoadXmlDocumentSample myLoadXmlDocumentSample = new
> LoadXmlDocumentSample();
> myLoadXmlDocumentSample.Run(document);
> }
>
> public void Run(String args)
> {
> try
> {
> // Load the XML from file
> Console.WriteLine ();
> Console.WriteLine ("Cargar el archivo {0}...", args);
>
> XmlDataDocument myXmlDocument = new XmlDataDocument();
> myXmlDocument.Load (args);
>
> Console.WriteLine ("Los datos XML se han cargado correctamente
> en el objeto XmlDataDocument...");
>
> // Display the XML document.
> myXmlDocument.Save(Console.Out);
> }
> catch (Exception e)
> {
> Console.WriteLine ("Excepcin: {0}", e.ToString());
> }
> }
>
> } // End class LoadXmlDocumentSample
> } // End namespace HowTo.Samples.XML
>
>
> Un saludo.
>
>
> Pablo O. Abbate
> MCDBA - MCAD - MCSD - MCT
> www.auladat.es
>
>
>
> "Oscar Rodriguez" escribió en el mensaje
> news:
> > Me refiero a cualquier fichero de texto plano independientemente de la
> > codificacion que use este
> >
> > Esto es un ejemplo de una utilidad para remplazar texto en archivos xml.
> en
> > este caso puedo saber normalmente la codificacion que tienen ya que esta
> se
> > suele ser la primera linea, pero no siempre ocurre
> >
> > El motivo de abrilo con la codificación adecuada sirve para que trate
bien
> > las tildes de las palabras.
> > For Each item In listArchivos.Items
> >
> > If item.Checked = True Then
> >
> > Select Case item.SubItems(2).Text
> >
> > Case "UTF-8"
> >
> > t = New System.IO.StreamReader(item.SubItems(1).Text,
> > System.Text.Encoding.UTF8)
> >
> > Case "ASCII"
> >
> > t = New System.IO.StreamReader(item.SubItems(1).Text,
> > System.Text.Encoding.Default)
> >
> > Case "UNICODE"
> >
> > t = New System.IO.StreamReader(item.SubItems(1).Text,
> > System.Text.Encoding.Unicode)
> >
> > End Select
> >
> > sLine = t.ReadToEnd
> >
> > t.Close()
> >
> > Dim odr As DataRow
> >
> > For Each odr In odt.Rows
> >
> > Dim stringtosearch As String
> >
> > Dim stringtoreplace As String
> >
> > stringtosearch = odr.Item(1).ToString
> >
> > stringtoreplace = odr.Item(2).ToString
> >
> > sLine = sLine.Replace(stringtosearch, stringtoreplace)
> >
> > Next
> >
> > Dim sw As StreamWriter = New StreamWriter(item.SubItems(1).Text)
> >
> > sw.Write(sLine)
> >
> > sw.Close()
> >
> > End If
> >
> > Next
> >
> > "Pablo O. Abbate" escribió en el
mensaje
> > news:
> > > Oscar:
> > >
> > > ¿A que tipo de archivo te refieres?
> > > ¿Podrías enviar un ejemplo del código que utilizas para abrir dicho
> > archivo?
> > >
> > >
> > >
> > > Pablo O. Abbate
> > > MCDBA - MCAD - MCSD - MCT
> > > www.auladat.es
> > >
> > > "Oscar Rodriguez" escribió en el mensaje
> > > news:
> > > > Hola a todos.
> > > > Me gustaría saber si existe algún método para averiguar la
> codificación
> > de
> > > > un archivo en .net, es decir si presenta una codificación ASCII,
UTF-8
> o
> > > > UNICODE. Ya que a la hora de abrir un fichero hay que especificar la
> > > > codificación que usa este para trabajar correctamente sobre él.
> > > > Gracias por adelantado
> > > >
> > > >
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida