elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Poque el control edit no lee lo saltos de linea
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Poque el control edit no lee lo saltos de linea  (Leído 5,161 veces)
alienxz77b

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Poque el control edit no lee lo saltos de linea
« en: 6 Agosto 2021, 07:05 am »

Hola, recientemente que estado programando bajo la api de Windows programando algo parecido a un bloc de notas, me he encontrado con el problema de que al abrir un archivo, leer su contenido y ponerlo en mi control edit los saltos de line no aparecen, ya he buscado alguna solución a este problema en Google y la documentación de MSDN pero no he hallado nada

Al parecer cuando escribo texto en el control edit y lo guardo,  y después abro el archivo en el bloc de notas me aparecen dos saltos de linea

Podrían por favor ayudarme a visualizar una salto de linea en un control edit y guardarlo como tal sin que se repita el salto de linea

Perdón si escribo mal o no me explico bien, es que soy nuevo

Gracias por adelantado


En línea

Danielㅤ


Desconectado Desconectado

Mensajes: 1.853


🔵🔵🔵🔵🔵🔵🔵


Ver Perfil
Re: Poque el control edit no lee lo saltos de linea
« Respuesta #1 en: 6 Agosto 2021, 09:07 am »

Hola, el uso correcto del salto de línea es:

Código:
\r\n

Tendrías que fijarte en tu código cómo está guardando los datos que ingresas en la caja de edit, que el nombre sería TextBox.

Por otro lado podrías depurar los datos guardados para mostrarlos por ejemplo por consola y ver en crudo como está el texto, por ejemplo normal sería:

Código:
Argentina
España
Chile
Colombia
Ecuador
Venezuela
Uruguay
Mexico


mostrado en raw (crudo) sería así:

Código:
Argentina\r\nEspaña\r\nChile\r\nColombia\r\nEcuador\r\nVenezuela\r\nUruguay\r\nMexico\r\n


Saludos


« Última modificación: 6 Agosto 2021, 09:09 am por Danielㅤ » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Poque el control edit no lee lo saltos de linea
« Respuesta #2 en: 6 Agosto 2021, 09:24 am »

Por si acaso lo mas elemental: ¿Estas usando ES_MULTILINE?

¿Como estas leyendo el archivo?
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
alienxz77b

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: Poque el control edit no lee lo saltos de linea
« Respuesta #3 en: 7 Agosto 2021, 01:04 am »

Hola y gracias por responder
Respuesta a Eternal Idol:
El control edit lo creo asi:
Código
  1. edit2=CreateWindowEx(0, "EDIT", "",  WS_BORDER|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_VSCROLL|WS_HSCROLL|ES_MULTILINE|ES_AUTOVSCROLL|ES_AUTOHSCROLL
  2. |ES_LEFT|ES_WANTRETURN, 0, 53, 480, 300,hwnd, (HMENU)menuop, NULL, NULL);
y leo el contenido del archivo en esta forma:
Código
  1. fclose(file);
  2. file=fopen(ruta3, "r+");
  3. char cadena[fsize(file)];
  4. fread(cadena, 1, fsize(file), file);
  5. SetText(hwnd, cadena);//esta funcion establece texto en mi edit
  6. //fisize es una funcion que cree para averiguar el tamanio de un archivo

Respuesta a Daniel:
Creo que para que se muestren los saltos de linea en el edit tendria que reemplazar los caracteres \n por \t\n no?

Si es asi lo podria hacer de esta forma:

Código
  1. int strremplaze(char arreglo[], char elemento1[], char elemento2[], char salida[], int pos){
  2. //strfind es una funicon que disenie para encontrar cadenas en un arreglo
  3. //strsize mide el tamanio de una cadena
  4.    int pos1 = strfind(arreglo, elemento1, pos), size1 = strsize(elemento2), size2 = strsize(elemento1), size3 = strsize(arreglo), s=0, size4=(size3-size2+size1);
  5.    char salida1[size4];
  6.    if(pos1 != -1){
  7.            if(size1>size2){
  8.                size4=size1-size2;
  9.            }
  10.            else if(size1<size2){
  11.                size4=size2-size1;
  12.            }
  13.    for(int u=0;u<=pos1;u++){
  14.            salida1[u]=arreglo[u];
  15.    }
  16.    for(int u=pos1;u<=size1+pos1;u++){
  17.            salida1[u]=elemento2[s];
  18.            s++;
  19.    }
  20.            s=size1+pos1;
  21.    for(int u=size2+pos1;u<=size3+size4;u++){
  22.            salida1[s]=arreglo[u];
  23.            s++;
  24.    }
  25.    for(s=0;s<=strsize(salida1);s++){
  26.        salida[s]=salida1[s];
  27.    }
  28.    return size3-size4;
  29.    }
  30.    else{
  31.        return -1;
  32.    }
  33. }
  34.  
  35. void leerContenido(){
  36. ...
  37. fclose(file);
  38. file=fopen(ruta3, "r+");
  39. char cadena[fsize(file)];
  40. fread(cadena, 1, fsize(file), file);
  41. strremplaze(cadena, "\n", "\t\n", salida, 0);
  42. SetText(hwnd, cadena);//esta funcion establece texto en mi edit
  43. //fisize es una funcion que cree para averiguar el tamanio de un archivo
  44. ...
  45. }
  46.  
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Poque el control edit no lee lo saltos de linea
« Respuesta #4 en: 7 Agosto 2021, 01:25 am »

¿Y de donde sale el archivo?

Comproba su contenido con un editor hexadecimal (hxd por ejemplo), en Windows el salto de linea es \r\n (13 y 10). Lo ideal seria que depuraras tu codigo linea por linea y vieras que lee en la variable cadena exactamente.

https://en.wikipedia.org/wiki/Newline
« Última modificación: 7 Agosto 2021, 01:27 am por Eternal Idol » En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
alienxz77b

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: Poque el control edit no lee lo saltos de linea
« Respuesta #5 en: 7 Agosto 2021, 02:02 am »

Hola Eternal, gracias por ersponder

Con la informacion  que saque del link que me dejaste logre mejorar el codigo y funciono perfectamente

Código
  1. fclose(file);
  2. file=fopen(ruta3, "r+");
  3. char cadena[fsize(file)+200];
  4. strfreechar(cadena, fsize(file));
  5. fread(cadena, 1, fsize(file), file);
  6. int i=0;
  7. while(strremplaze(cadena, "\n", "\r\n", cadena, i)!=-1){
  8. i++;
  9. }
  10. SetText(hwnd, cadena);
  11.  
Muchas gracias a Eternal Idol y Daniel por ayudarme a solucionar el problema
Bonito dia ;D
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Poque el control edit no lee lo saltos de linea
« Respuesta #6 en: 7 Agosto 2021, 10:19 am »

De nadas  ::)

Cuidado con seguir transformando el \n una vez que ya es correcto para Windows (\r\n).
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
contar saltos de linea RichTextBox VB
Programación Visual Basic
Carlosnuel 5 12,948 Último mensaje 6 Abril 2007, 01:55 am
por CeLaYa
Saltos de linea
PHP
zhynar_X 2 5,572 Último mensaje 8 Septiembre 2007, 17:59 pm
por дٳŦ٭
Saltos de linea en PHP.
PHP
Akise 2 2,148 Último mensaje 25 Junio 2013, 03:33 am
por Akise
Ayuda con saltos de línea
Programación Visual Basic
TheH4ck 7 3,875 Último mensaje 13 Marzo 2015, 18:58 pm
por okik
Buffer i saltos de linea en C
Programación C/C++
proterva 1 2,145 Último mensaje 16 Agosto 2018, 14:44 pm
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines