Discussione:
testo scritto perde fromattazione
(troppo vecchio per rispondere)
Bertram
2013-03-28 13:43:44 UTC
Permalink
Ciao

Ho scritto un semplice programma C console, compilato con MinGW, che copia
dalla clipboard del testo e lo scrive in un file.txt. aprendolo con fopen.

Il testo che scrive, però, perde la formattazione. Cioè, e solo una lunga
linea dei caratteri, mancando gli a capo, i return, ...ci sono invece tab e
gli spazi!

/***
char *y, *z;

int size;

if (OpenClipboard(hwnd)==0) return NULL;

htext=GetClipboardData(CF_TEXT);

if (htext==0) return NULL;

size=GlobalSize(htext);

z=malloc(size);

if (q==NULL) return NULL;

y=GlobalLock(htext);

memcpy(q,p,size);

***/

ho provato anche con CF_OEMTXT E UNICODE, ma non e servito a nulla.

Mi sapete dare chiarimenti?


Ciao
Bertram
2013-03-28 20:56:15 UTC
Permalink
aggiungo che, se stampo sulla console, il testo, copiato dalla clipboard,
mantiene
la formattazione, tipo:

akjdjdsmls, asjddls djdos apskj
ajdid fogfgf kdldpd, fhfdoana
ajskdkd kpsosjsandkc vksoaj
dnjdosns, fhsioshs, vpfodjs, gngf
shjds.


Ciao
Giacomo Degli Esposti
2013-03-29 10:41:04 UTC
Permalink
Post by Bertram
Ciao
Ho scritto un semplice programma C console, compilato con MinGW, che copia
dalla clipboard del testo e lo scrive in un file.txt. aprendolo con fopen.
Il testo che scrive, per�, perde la formattazione. Cio�, e solo una lunga
linea dei caratteri, mancando gli a capo, i return, ...ci sono invece tab e
gli spazi!
[...]
Post by Bertram
Mi sapete dare chiarimenti?
ciao.
Puoi postarci anche il codice in cui scrivi nel file .txt ?
E' possibile che l'errore sia li', non e' che salti un carattere
nella scrittura e il carattere che salti e' proprio il return?

ciao
Giacomo
Bertram
2013-03-29 12:27:22 UTC
Permalink
La scrittura e una semplice, aprire il file in formato, "w"

e con fprintf, o fputs, scrivere il testo copiato dalla clipboard.

Quando guardo il testo copiato nella clipboard, prima di avviare il
programma, il testo e formattato, cioè ha i return, ed è come lo vedo
a video.

Adlfmsidn soajd, gjsoreun
fksisn, gkdjs.
akdjdisl, gogjdj ; djfog0
Aldkfoif!

Ma quando lo scrivo nel file, e solo una lunga linea di caratteri:

Adlfmsidn soajd, gjsoreun f ksisn, gkdjs. akdjdisl, gogjdj ; djfog0
Aldkfoif!

Mantiene gli spazi, ma non ci sono i return! i new line.


/**

FILE *p;

char *clipboard;


clipboard=copiadaclipboard();

p = fopen("File.txt", "w");

fprintf(p,"%s\n",clipboard);


fclose(p);

**/
Giacomo Degli Esposti
2013-03-29 14:57:14 UTC
Permalink
Post by Bertram
La scrittura e una semplice, aprire il file in formato, "w"
Prova con "wt", serve per aprire il file in modo testo e non binario.

ciao
Giacomo
Bertram
2013-03-30 11:19:41 UTC
Permalink
Post by Bertram
La scrittura e una semplice, aprire il file in formato, "w"
Prova con "wt", serve per aprire il file in modo testo e non binario.

ciao
Giacomo


No, con "wt", scrive come prima, con "wb", scrive mantenendo la forma.

Ciao
Bertram
2013-03-29 12:37:48 UTC
Permalink
Aggiungo che, anche quando lo stampo sullo stdin, sul video della console,
mantiene
la formattazione.

Ciao
Stefano Frosio
2013-04-01 08:20:14 UTC
Permalink
Post by Bertram
Il testo che scrive, però, perde la formattazione. Cioè, e solo una lunga
linea dei caratteri, mancando gli a capo, i return, ...ci sono invece tab e
gli spazi!
Mi sapete dare chiarimenti?
Probabilmente devi convertire i caratteri di ritorno a capo nella coppia
\r\n.

HTH,
--
Stefano Frosio
www.esse-effe.com
Bertram
2013-04-11 18:39:02 UTC
Permalink
Post by Stefano Frosio
Post by Bertram
Il testo che scrive, però, perde la formattazione. Cioè, e solo una lunga
linea dei caratteri, mancando gli a capo, i return, ...ci sono invece tab e
gli spazi!
Mi sapete dare chiarimenti?
Probabilmente devi convertire i caratteri di ritorno a capo nella coppia
\r\n.
come fai a vedere in un editor questi caratteri speciali?
Utilizzo Scite, e i fine linea, sono: CRLF.
Anche con Geany, sono le stessa cosa.

Ciao
Stefano Frosio
2013-04-13 08:12:41 UTC
Permalink
Post by Bertram
Post by Stefano Frosio
Probabilmente devi convertire i caratteri di ritorno a capo nella coppia
\r\n.
come fai a vedere in un editor questi caratteri speciali?
Con un editor esadecimale?
--
Stefano Frosio
www.esse-effe.com
Loading...