| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
snupoo Lt Cmdr


Registrado: 19 Feb 2004Mensajes: 108Ubicación: Merida yucatan Mexico
|
Publicado: Lun 16 Sep, 2019 5:26 am Asunto: Excel y salto de línea. |
|
|
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 |
|
 |
Felip Master

Registrado: 09 Jun 2004Mensajes: 200
|
Publicado: Lun 16 Sep, 2019 6:03 pm Asunto: |
|
|
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 |
|
 |
snupoo Lt Cmdr


Registrado: 19 Feb 2004Mensajes: 108Ubicación: Merida yucatan Mexico
|
Publicado: Lun 16 Sep, 2019 10:48 pm Asunto: |
|
|
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 |
|
 |
snupoo Lt Cmdr


Registrado: 19 Feb 2004Mensajes: 108Ubicación: Merida yucatan Mexico
|
Publicado: Mar 17 Sep, 2019 12:22 am Asunto: |
|
|
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 |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mar 17 Sep, 2019 4:21 am Asunto: Re: Excel y salto de línea. |
|
|
| 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!! _________________
 |
|
| Volver arriba |
|
 |
escafandra Master

Registrado: 29 Nov 2007Mensajes: 625Ubicación: Madrid - España
|
Publicado: Dom 22 Sep, 2019 12:06 pm Asunto: |
|
|
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 |
|
 |
|