Buongiorno a tutti…
Innanzitutto qualcuno sar gi in ferie, leggendo questo post dal telefonino o dal portatile ( in questo caso ovvia la fulminata da parte della moglie … : <<ma ti dovevi portare il computer anche in vacanza ???>>. ) Va b !
Beati voi in ogni caso.
Allora ho un problema con EndOfLine.
Ho un testo ( una tabella txt separata da tabulazione ) in formato UTF8 delimitato da EndOfLine di tipo Windows ( 0D 0A ) oppure chr(13)+chr(10) o a meglio dire CR+LF
Parto con il presupposto che il testo arriva da clipboard, e che quando viene incollato l’utente non ne conosce il tipo di encoding e il tipo di delimitazione delle righe;
quindi ne converto la codifica nel formato UTF8.
dim c as new clipboard
If c.textAvailable Then
dim testo as string = c.text.ConvertEncoding(Encodings.UTF8)
// faccio quello che devo fare
end if
A questo punto non conosco nemmeno come termina la riga :
- LF: Multics, sistemi Unix e sistemi Unix-like (GNU/Linux, AIX, Xenix, macOS, etc.), BeOS, AmigaOS, RISC OS e altri
- CR+LF: DEC RT-11 e molti altri non-Unix, non-IBM OSes, CP/M, MP/M, MS-DOS, OS/2, Microsoft Windows
- CR: Macchine Commodore, famiglia Apple, Mac OS fino alla versione 9 inclusa
Dove LF il codice carattere decimale 10, 0A in esa, CR il codice carattere decimale 13, 0D in esa;
A questo punto per utilizzando diversi sistemi per convertire tali caratteri di End Of Line comunque non ottengo il risultato.
- utilizzando : testo = replaceall(testo,chr(13)+chr(10),endofline.UNIX) NON FUNZIONA
- convertendo con l’apposita funzione : testo = ReplaceLineEndings(testo, EndOfLine.UNIX) NON FUNZIONA
Alla fine popolo un array con le righe utilizzando : righe() = split(testo,EndOfLine.UNIX), e ottengo una riga si e una riga no il testo, e rispettivamente, una riga vuota. In debug la riga vuota non contiene nulla.
Qui un video che mostra il problema.
Problema con CR+LF Windows