New Immissions/Updates:
boundless - educate - edutalab - empatico - es-ebooks - es16 - fr16 - fsfiles - hesperian - solidaria - wikipediaforschools
- wikipediaforschoolses - wikipediaforschoolsfr - wikipediaforschoolspt - worldmap -

See also: Liber Liber - Libro Parlato - Liber Musica  - Manuzio -  Liber Liber ISO Files - Alphabetical Order - Multivolume ZIP Complete Archive - PDF Files - OGG Music Files -

PROJECT GUTENBERG HTML: Volume I - Volume II - Volume III - Volume IV - Volume V - Volume VI - Volume VII - Volume VIII - Volume IX

Ascolta ""Volevo solo fare un audiolibro"" su Spreaker.
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Newline - Wikipédia

Newline

Origem: Wikipédia, a enciclopédia livre.

Na computação, newline é um caractere ou seqüência de caracteres que significam “fim de uma linha de texto”. O nome se origina do fato de que o próximo caractere após o newline surgirá em uma nova linha—ou seja, na próxima linha abaixo do texto imediatamente anterior ao newline. O código que representa o newline muda de plataforma para plataforma de hardware e sistemas operacionais, o que pode ser problemático ao compartilhar dados entre diferentes plataformas.

Há certa confusão acerca de saber se um newlines termina ou separa linhas. Se admitirmos que ele é um separador, então não deve haver um newline no fim do arquivo. A convenção geral é acrescentar um newline mesmo após a última linha, ou seja de considerar o newline como um finalizador. Há programas que apresentam dificuldades em processar a última linha de um arquivo se ela não terminar com um newline. Por outro lado, programa que interpretam o newline como um separador, interpretarão um newline no final do arquivo como o começo de uma nova linha (vazia). O resultado é a possível diferença na contagem de linhas de um arquivo, mas não há outros problemas. Newlines são chamadas por vezes de “quebras de linha” e chamadas de fim-de-linha - end-of-line (EOL).

Índice

[editar] Representações

No Unix, um line feed é frequentemente chamado de newline: um line feed é interpretado como sendo a instrução que tem o mesmo efeito que um CR-LF teria em uma impressora.

Os programas e sistemas operacionais podem representar um newline como um ou dois caracteres de controle:

  • No ASCII e outros conjuntos de caracteres compatíveis usam um LF (Line Feed, 0x0A) ou CR (Carriage return, 0x0D) individualmente, ou CR seguido por LF (CR+LF, 0x0D 0x0A); veja adiante a razão histórica da convenção CR+LF.
  • EBCDIC—principalmente computadores da IBM, inclusive z/OS (OS/390), i5/OS (OS/400)—usam NEL (Next Line, 0x15) como sendo o caractere para newline. Veja que o EBCDIC também possui caracteres chamados CR e LF, cujos valores numéricos diferem dos usados no ASCII.

[editar] Unicode

O padrão Unicode lida com este problema ao definir um grande número de caracteres que devem ser interpretados pelas aplicações como sendo fim de linha

  •  LF:    Line Feed, U+000A
  •  CR:    Carriage return, U+000D
  •  CR+LF: CR seguido por LF, *U+000D seguido por U+000A
  •  NEL:   Next Line, U+0085
  •  FF:    Form Feed, U+000C
  •  LS:    Line Separator, U+2028
  •  PS:    Paragraph Separator, U+2029

[editar] Histórico

O padrão ASCII foi desenvolvido simultaneamente pela ISO e pela ASA. A seqüência CR+LF era de uso comum em vários computadores que usavam máquinas teletipo como console, uma vez que esta seqüência era necessária para posicionar a impressora no começo de uma nova linha. Como o conceito do isolamento dos detalhes de hardware por um driver de software ainda não tinha surgido; os programas tinham de enviar diretamente tais caracteres. O uso de dois caracteres devia-se ao fato de que os teletipos não eram rápidos o suficiente para retornar do canto direito ao canto esquerdo no tempo disponível para apenas um caractere - assim o. CR vinha em primeiro lugar. Na verdade muitas vezes era necessário acrescentar ainda um terceiro caractere: CR+LF+NUL (onde NUL significa “não faça nada”) ou CR+CR+LF (enviando CR duas vezes) para esperar que a cabeça se estabilizasse. Tendo os teletipos se tornado obsoletos, os programas criados para eles fizeram com que esta seqüência de dois caracteres persistisse.

[editar] Linguagens de Programação

Para tornar os programas portáveis, as linguagens de programação criam mecanismos para abstrair os diferentes tipos de seqüências de newline existentes.

A linguagem C define as seqüências de escape '\n' (newline) e '\r' (carriage return). Ao contrário do que muitos pensam, eles não são – em geral – equivalentes aos caracteres de controle ASCII LF e CR. O padrão C garante apenas duas coisas:

  1. Estas seqüências de escape são armazenadas no computador como apenas um caractere char.
  2. Ao criar um arquivo em “modo texto”, '\n' será convertido de maneira transparente para a seqüência newline usada pelo sistema, que poderá ser mais longa do que um caractere.

A linguagem de programação Java também define as seqüências de escape '\n' e o '\r'. Ao contrário do C, elas são sempre representadas por 0x0A e 0x0D, respectivamente. Isto significa que um newline pode não ser interpretado corretamente por programas de todas as plataformas – se tais programas não forem escritos em Java. Porém, a biblioteca do Java fornece métodos capazes de lidar corretamente com a leitura e escrita de arquivos de maneira consistente em qualquer ambiente. (veja BufferedReader.readLine()).

[editar] Problemas

As diferentes convenções para o newline muitas vezes fazem com que os arquivos de texto copiados de uma plataforma para outra sejam mostrados de maneira incorreta. Por exemplo, arquivos criados no Unix ou Apple Macintosh serão vistos como uma longa e única linha no Windows. Analogamente, um arquivo do Windows visto no Unix terá seus CR mostrados como um ^M ao final de cada linha ou como um segundo pula linha.

O problema pode ser de difícil detecção. Por exemplo, um compilador poderá falhar com erros de sintaxe obscuros embora o arquivo fonte pareça normal. Os editores de textos mais recentes reconhecem todas as variações de newlines do tipo CR / LF permitindo ao usuário converter entre os diferentes padrões. Os navegadores – em geral - também são capazes de fazê-lo.

O protocolo FTP (File Transfer Protocol) converte automaticamente newlines de arquivos transferidos entre sistemas com diferentes representações para o newline quando a transferência é feita em modo ASCII. Porém, transferir arquivos binários neste formato pode ter resultados desastrosos: qualquer ocorrência do(s) caractere(s) que representa(m) o newline—que neste contexto não representam realmente um newline—será incorretamente convertida para a representação nativa do sistema, corrompendo o arquivo. Embora o cliente FTP possa tentar adivinhar o tipo do arquivo (por exemplo, a partir de sua extensão) cabe ao usuário decidir o modo de transferência: binário ou ASCII. Havendo dúvidas, use o modo binário, de maneira que o arquivo não seja alterado durante a FTP, embora possa ser apresentado incorretamente.

[editar] Utilitários para conversão

Em geral, é a maneira mais simples de converter um arquivo de texto entre diferentes formatos de newline; a maioria dos editores de texto modernos podem ler e escrever arquivos usando ao menos a convenção ASCII CR/LF. Infelizmente isto não vale para o editor padrão do Windows Bloco de Notas, mas vale para o Wordpad.No Unix, os comandos dos2unix e unix2dos podem ser usados para converter entre o ASCII CR+LF (DOS/Windows) e o LF (Unix) newlines - embora a sintaxe deste comando possa variar.

[editar] Exemplos

Detectar e substituir caracteres new line em C:

/* Para cada linha do arquivo indicado por FILE *fp: */
while ( fgets( buf, sizeof(buf), fp ) ) {
        /* Se houver um separador de linha ele deve estar no final */
        char * last = strchr(buf, '\0');
        /* Procure por LF e os substitua */
        if (last - 1 >= buf && *--last == '\n')
                *last = '\0';
        /* Procure por CR e os substitua */
        if (last - 1 >= buf && *--last == '\r')
                *last = '\0';

        /* Faça algo de útil com a string sem newline que está em buf */
}

[editar] Referências

Outras línguas

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu