• Viernes 29 de Marzo de 2024, 05:44

Autor Tema:  Reemplazar contrabarras en un string  (Leído 6092 veces)

caloalvaro

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Reemplazar contrabarras en un string
« en: Miércoles 2 de Junio de 2010, 16:50 »
0
Hola buenas tardes a todos.
Expongo mi duda:
Recibo de la base de datos un string con una ruta que almaceno en ella. Intento usar esta ruta para mostrar una imagen en un html que voy creando con un StringWriter (s.writeLine(...);)
La cadena, al tener  c# me lo traduce a \ (entiendo que es un carácter de escape) pero quisiera saber como poder construir la ruta sin que me ponga la \.
Estoy usando Replace pero no consigo construir una buena ruta.
Espero que me podáis ayudar, muchas gracias

tannke

  • Miembro MUY activo
  • ***
  • Mensajes: 152
  • Nacionalidad: es
    • Ver Perfil
Re: Reemplazar contrabarras en un string
« Respuesta #1 en: Miércoles 2 de Junio de 2010, 17:01 »
0
Bueno por lo que tengo entendido el \ en un string es la manera de representar la . Ahora mismo no se si es o no caracter de escape, yo siempre he pensado que se ponia asi para evitar (conflicto o confusion) que si despues de la  hubiera una 'n'  tipo (string rut= c:nueva carpeta;) esa barra se representaria como un salto de linea. Es mas, si tu ese string que te devuelve con \ lo escribes en pantalla o en un .txt te lo hara solo con una barra.

A todo esto, teoricamente no deberia darte problemas para abrirte la imagen con esa ruta devuelta. Pero bueno, mucho caso tampoco no me hagas estos dias que estoy algo espesito.

Esto creo no es exactamente lo que preguntas, pero una manera de escribir una ruta (manualmente) sin tener que poner la \ es precediendo de @:

Código: C#
  1. string ruta= @"c:Mis documentosmi carperami otra carperael archivo.jpg";
  2.  



Un saludo

caloalvaro

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Reemplazar contrabarras en un string
« Respuesta #2 en: Miércoles 2 de Junio de 2010, 17:12 »
0
Gracias pero sigue sin irme. Pongo un poco mas de informacion a ver si alguien puede aportar algo mas:

Campo en bd: imagesSAMA251,1.jpg (la parte de c:.... la meto a traves de una constante despues)
Respuesta de la consulta en json: rows= "[{"ruta":"images\\SAMA25\\1,1.jpg"}]"
Tratado de la respuesta:
                rows = rows.Trim();
                rows = rows.Replace("[{"ruta":"", "");
                rows = rows.Replace("\\", "u005c").ToString();  <--- Esto es lo que he probado a hacer de mil modos
                rows = rows.Replace(""}]", "");
                return rows;
Para poner la ruta base me encuentro el mismo problema:
rutaBase  =@"C:UserscaloalvaroDocuments"; y me siguen saliendo las 2

Gracias por los aportes :D

Jeysscarr

  • Miembro MUY activo
  • ***
  • Mensajes: 134
  • Nacionalidad: co
    • Ver Perfil
Re: Reemplazar contrabarras en un string
« Respuesta #3 en: Miércoles 2 de Junio de 2010, 18:26 »
0
Chequeando....
Nuestro poder está creciendo mas rápido que nuestra sabiduria

Jeysscarr

  • Miembro MUY activo
  • ***
  • Mensajes: 134
  • Nacionalidad: co
    • Ver Perfil
Re: Reemplazar contrabarras en un string
« Respuesta #4 en: Miércoles 2 de Junio de 2010, 18:46 »
0
Por favor coloca dos ejemplos que contengan:

1. LA cadena como te la da la consulta
2. como la necesitas
Nuestro poder está creciendo mas rápido que nuestra sabiduria

Jeysscarr

  • Miembro MUY activo
  • ***
  • Mensajes: 134
  • Nacionalidad: co
    • Ver Perfil
Re: Reemplazar contrabarras en un string
« Respuesta #5 en: Miércoles 2 de Junio de 2010, 18:58 »
0
Aqui te dejo el código que cree para anular el caracter "  "

Al final el valor de la cadena pasa de ser [{"ruta":"images\\SAMA25\\1,1.jpg"}] a: imagesSAMA251,1.jpg

Espero que sea lo que necesitaras, (probado y reprobado)
Código: C#
  1. string cad=@"[{"ruta":"images\\SAMA25\\1,1.jpg"}]";
  2.             char o = '\';
  3.             char p = '-';
  4.             cad = cad.Replace(o, p);
  5.             cad = cad.Replace("[{-"ruta-":-"", "\");
  6.             cad = cad.Replace("----", "\").ToString();
  7.             cad = cad.Replace("-"}]", "\");
  8.             l2.Text = cad;
  9.  
Puedes meterlo en una función del tipo: public String DesconfigurarCadena(String cadenaConsulta)
Resultado:
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
Nuestro poder está creciendo mas rápido que nuestra sabiduria

Jeysscarr

  • Miembro MUY activo
  • ***
  • Mensajes: 134
  • Nacionalidad: co
    • Ver Perfil
Re: Reemplazar contrabarras en un string
« Respuesta #6 en: Miércoles 2 de Junio de 2010, 23:27 »
0
La función:

Código: C#
  1. public String DesconfigurarCadena(String CadenaConsulta)
  2. {
  3.              char  o = '\';
  4.              char p = '-';
  5.              CadenaConsulta = CadenaConsulta.Replace(o, p);
  6.              CadenaConsulta = CadenaConsulta.Replace("[{-"ruta-":-"", "\");
  7.              CadenaConsulta = CadenaConsulta.Replace("----", "\").ToString();
  8.              CadenaConsulta = CadenaConsulta.Replace("-"}]", "\");
  9.              return CadenaConsulta;
  10. }
  11.  

Al Llamarla:
Código: C#
  1. String ruta = DesconfigurarCadena(row);
  2. //Resultado: imagesSAMA251,1.jpg
  3.  
  4.  
Nuestro poder está creciendo mas rápido que nuestra sabiduria