Rivinvaihtomerkit eri järjestelmissä

Mureakuha

Loikkaa: valikkoon, hakuun

Tekstitiedostojen rivivaihtomerkit riippuvat käytettävästä järjestelmästä sekä mahdollisesti käytettävästä sovelluksesta, kuten Internet-selaimesta. Rivinvaihtomerkkisarjoja on yleisessä käytössä kolmea erilaista: (\n = LF, Line Feed; \r = CR, Carriage Return)

Merkki Järjestelmä
LF, \n *Nix
CR, \r Macintosh
CRLF, \r\n Windows

Näistä alin, eli CRLF on myös käytössä yleisimmissä protokollissa, eli esimerkiksi HTTP ja SMTP.

PHP

PHP-sovelluksissa tämä voidaan huomioida mm. seuraavasti:

<?php
   /* Muutetaan rivivaihdot <br /> -tageiksi. */
   /* Tapa 1. Huomaa että str_replace -funktiota on turhaa kutsua kolmesti,
              sillä funktiolle voi antaa suoraan arrayn! */
   $string = str_replace(array("\r\n", "\n", "\r"), '<br />', $string);
 
   /* Tapa 2: Preg_replace saattaa tai saattaa olla olematta str_replace
              -funktiota hitaampi. */
   $string = preg_replace("/\r\n|\r|\n/", '<br />', $string);
 
   /* Tapa 3: Luultavasti näistä nopein, mutta tulos ei välttämättä ole
              aina toivottu, sillä versiosta riippuen palautuu joko
              "<br>" tai "<br />". On myöskin huomattava, että tämä eroaa
              muista tavoista siten, ettei rivinvaihtoja ''korvata'', vaan
              niiden eteen ''lisätään'' jompikumpi yllämainituista html-
              tageista. Esimerkiksi hei\nhei muuttuu muotoon
              hei<br />\nhei.  */
   $string = nl2br($string);
 ?>

Huomaa että pelkästään LF (\n) ja CR (\r) merkkejä ei voida vaihtaa, sillä CRLF sisältää nämä molemmat. Tällöin esimerkiksi Linux- ja Machintosh-käyttäjät saattaisivat nähdä pelkästään yhden rivivaihdon kun Windows-käyttäjä näkisikin niitä kaksi kappaletta.

Pascal

Pascalissa kuten FreePascal ja Lazarus rivinvaihto saadaan toimimaan käyttöjärjestelmäriippumattomasti käyttämällä LineEnding merkkijonovakiota. Eli rivinvaihdon kohalle lisätään vain LineEnding vakio.

Henkilökohtaiset työkalut