Διαφορά μεταξύ των τύπων διακοπής γραμμής CR LF, LF και CR;

Θα ήθελα να μάθω τη διαφορά (με παραδείγματα αν είναι δυνατόν) μεταξύ των τύπων αλλαγής γραμμής CR LF (Windows), LF (Unix) και CR (Macintosh).

Οι CR και LF είναι χαρακτήρες ελέγχου, αντίστοιχα κωδικοποιημένοι ως "0x0D" (13 δεκαδικά) και "0x0A" (10 δεκαδικά).

Χρησιμοποιούνται για να σηματοδοτούν τη διακοπή γραμμής σε ένα αρχείο κειμένου. Όπως αναφέρατε, τα Windows χρησιμοποιούν δύο χαρακτήρες την ακολουθία CR LF- το Unix χρησιμοποιεί μόνο LF και το παλιό MacOS ( προ-OSX MacIntosh) χρησιμοποιούσε CR.

Μια απόκρυφη ιστορική προοπτική:

Όπως ανέφερε ο Peter, CR = Carriage Return και LF = Line Feed, δύο εκφράσεις που έχουν τις ρίζες τους στις παλιές γραφομηχανές / TTY. Η LF μετακινούσε το χαρτί προς τα πάνω (αλλά διατηρούσε την ίδια οριζόντια θέση) και η CR έφερνε πίσω το "καροτσάκι" έτσι ώστε ο επόμενος χαρακτήρας που πληκτρολογείται να βρίσκεται στην πιο αριστερή θέση του χαρτιού (αλλά στην ίδια γραμμή). Το CR+LF έκανε και τα δύο, δηλαδή προετοίμαζε την πληκτρολόγηση μιας νέας γραμμής. Με την πάροδο του χρόνου η φυσική σημασιολογία των κωδικών δεν ήταν εφαρμόσιμη, και καθώς η μνήμη και ο χώρος της δισκέτας ήταν περιορισμένος, ορισμένοι σχεδιαστές λειτουργικών συστημάτων αποφάσισαν να χρησιμοποιούν μόνο έναν από τους χαρακτήρες, απλά δεν επικοινωνούσαν πολύ καλά μεταξύ τους ;-)

Οι περισσότεροι σύγχρονοι επεξεργαστές κειμένου και εφαρμογές προσανατολισμένες στο κείμενο προσφέρουν επιλογές/ρυθμίσεις κ.λπ. που επιτρέπουν την αυτόματη ανίχνευση της σύμβασης τέλους γραμμής του αρχείου'και την εμφάνισή της αναλόγως.

Σχόλια (4)
Λύση

Στην πραγματικότητα πρόκειται απλώς για τα bytes που αποθηκεύονται σε ένα αρχείο. Το CR είναι ένας bytecode για το carriage return (από την εποχή των γραφομηχανών) και το LF ομοίως, για το line feed. Αναφέρεται απλώς στα bytes που τοποθετούνται ως δείκτες τέλους γραμμής.

Πολύ περισσότερες πληροφορίες, όπως πάντα, στη wikipedia.

Σχόλια (2)

Συστήματα βασισμένα σε ASCII ή ένα συμβατό σύνολο χαρακτήρων χρησιμοποιούν είτε LF (τροφοδοσία γραμμής, 0x0A, 10 στο δεκαδικό σύστημα) ή CR (Carriage return, 0x0D, 13 στο δεκαδικό σύστημα) μεμονωμένα, ή CR ακολουθούμενο από LF (CR+LF, 0x0D 0x0A), Οι χαρακτήρες αυτοί βασίζονται σε εντολές εκτυπωτή: Η τροφοδοσία γραμμής υποδεικνύει ότι μια γραμμή χαρτί θα πρέπει να τροφοδοτηθεί από τον εκτυπωτή, και μια επιστροφή καροτσιού υποδεικνύει ότι ο εκτυπωτής καροτσάκι θα πρέπει να επιστρέψει στην αρχή της τρέχουσας γραμμής.

Ακολουθούν οι λεπτομέρειες.

Σχόλια (0)