Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Excel y salto de línea.

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Excel y salto de línea. Responder citando

Hola compañeros tengo un problema al leer un Excel, el problema es que dentro de la celda hay texto con saltos de línea y lo necesito eliminar ya que ese texto me sirve para generar una consulta SQL y así me marca error: la consulta contiene caracteres inválidos.
Tratado de quitarlos con el siguiente códigos pero no he tenido éxito.

Código:

StringReplace(celda, "\n", "", TReplaceFlags() << rfReplaceAll);


Alguna sugerencia?

Gracias de antemano.
_________________
[img]http://folding.extremeoverclocking.com/sigs/sigimage.php?un=snupoo&t=86565/sigimage.gif[/img]
A programar se aprende programando
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

puedes intentar así

Código:
    String replace(String celda) {
       while( true )  {
          if(celda.Pos('\n'))  {
             celda[celda.Pos('\n')] = ' ';
             continue;
          }
          if(celda.Pos('\r'))  {
             celda[celda.Pos('\r')] = ' ';
             continue;
          }
          return celda;
       }
    }



o así

Código:
    String replaceStr(String Str, String sDel, String sIn) {
       while( true )  {
          int pos = Str.Pos(sDel);
          if(pos)  {
             Str.Delete(pos, sDel.Length());
             Str.Insert(sIn, pos);
             continue;
          }
          break;
       }
        return Str;
    }


celda = replaceStr(celda, "\n", "");
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Muchas gracias.
Elegí la primera opción y funciono de maravilla.
Solo que le quité el ciclo porque según yo no hace nada...😅

Código:

    String replace(String celda)
  {
          if(celda.Pos('\n'))
        {
             celda[celda.Pos('\n')] = ' ';
          }
          if(celda.Pos('\r'))
         {
             celda[celda.Pos('\r')] = ' ';
          }
          return celda;
 
    }


_________________
[img]http://folding.extremeoverclocking.com/sigs/sigimage.php?un=snupoo&t=86565/sigimage.gif[/img]
A programar se aprende programando
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Me retractó sin el ciclo solo se elimina la primera aparición del carácter especial.

Gracias de nuevo.
_________________
[img]http://folding.extremeoverclocking.com/sigs/sigimage.php?un=snupoo&t=86565/sigimage.gif[/img]
A programar se aprende programando
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Re: Excel y salto de línea. Responder citando

snupoo escribió:
...
Código:

StringReplace(celda, "\n", "", TReplaceFlags() << rfReplaceAll);


...


Intenta así desde la primera opción, la función StringReplace si "realiza" la operación de eliminar los saltos de linea "\n", pero debes almacenar el resultado en algún lado, para tu caso lo correcto es usar la misma "variable" a la cual le asignas el proceso de reemplazo.

Intenta así desde tu primer post.

Código:
celda = StringReplace(celda, "\n", "", TReplaceFlags() << rfReplaceAll);



Saludos!!
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Reniendo en cuenta que el retorno de carro y el de linea vienen juntos, quizás la opción con StringReplace deba mejor realizarse así:

Código:

StringReplace(celda, "\r\n", "", TReplaceFlags() << rfReplaceAll);




Saludos.[/i]
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.