PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Texteditoren verändern den Source Code



Siro
01.02.2019, 10:06
Zum Wochenende mal ein "bisher von mir" nicht erkanntes Problem mit Source Code Dateien:

Jetzt muss ich mal vorab den altmodischen Text loswerden:

"Früher" war alles besser, weil: ;)

da hatte jedes Asciizeichen sein eigenes Byte und zwar genau 1 Byte.
Da gab es auch noch ein Carriage Return und ein Linefeed und wenn ich einen Buchstaben geschrieben habe,
dann war meine Datei genau 1 Byte groß.

Zu diesen Zeiten konnte ich über meinen Sourcen problemlos eine Checksumme bilden
und hätte jegliche Manipulation mit recht hoher Wahrscheinlichkeit erkannt.

Aber was heutzutage an meinen Sourcen rummanipuliert wird von den Editoren ist schon unheimlich...

So habe ich grad in "einigen" meiner Sourcecode Dateien 3 Bytes am Anfang gefunden, die ICH da nicht reingepackt habe.
Also habe ich meinen Texteditor genommen und die Datei geöffent und in die aller oberste Zeile, ganz am Anfang einen Buchstaben "A" gesetzt.
Theoretisch müsste ich dann im Hexeditor als erstes Byte einen Hexcode 0x41 haben.
Die Praxis zeigt, dass dort aber 0xEF 0xBB 0xBF steht.
Nach etwas googeln findet man Folgendes:

Diese Bytefolge dient als Kennung zur Definition der Byte-Reihenfolge und Kodierungsform in UCS/Unicode-Zeichenketten, insbesondere Textdateien.

Aber doch bitte nicht in meinen Programm Source Dateien....
Wenn ich hier z.B. Texte abgelegt habe und diese einlese, dann wird das logischerweise nicht mehr funktionieren,
mal abgesehen von meiner Datei Größe und Checksummen die ich früher mit abgelegt und dokumentiert habe.....

Das bedeutet, ich darf weder die Dateigröße, noch eine Checksumme meiner Sourcedateien ablegen und dokumentieren,
weil das funktioniert einfach nicht mehr. :(
Lediglich das Öffnen einer Datei und das Speichern ohne eine Änderung zu machen, kann
eine völlig andere Datei erzeugen, alleine schon weil Spaces durch TABs ersetzt werden,
oder weil das Carrigae Return nicht mehr erscheit oder weil Bytesequenzen rein gesetzt werden oder oder....

Nachvollziehbar geht irgendwie anders.

Nicht ohne Grund habe ich eine Risikoanalye für die "Entwickungs und Dokumentationswerkzeuge" angefangen, welche nun erweitert werden muss.

Siro

Ceos
01.02.2019, 10:16
Ich genieße diese Funktionen erhlich gesagt, erspart es einem das lästige "dreimal Leertaste" zum Einrücken indem es auf der Tabtaste eben 3 Leerzeichen macht und keine Tabstops

Ich habe automatische Einrückung aktiviert, die mir bei einem Absatz mit { oder \ automatisch die folgende Zeile zurecht rückt und sogar die schließenden Klammern gleich mitserviert.


Ich finde es nicht schlimm dass uns die Editoren unter die Arme greifen. Aber das ist halt mein persönlicher Geschmack.

Aber (und da stimme ich dir uneingeschränkt zu) es zeigt mal wieder dass man sich nie mit gegebenen Funktionen ungeprüft abgeben sollte.

Ich habe mir ein kleines Rulebook gemacht und wenn ich an einer neuen IDE oder nach dem update der IDE weiterarbeiten will, gehe ich immer erstmal sämtliche Editoroptionen durch ud passe alles an.


einzig dieses VERDAMMTE MAUS MITTELTASTE kann man in MPLabX nicht umbelegen ... ich hab schon so manches mal heftig geflucht, weil cih grade konzentriert durch den code scrolle *ausversehen mausrad drückt* udn dann irgendwo völlig anders landet oder innerhalb der Datei völlig verrutscht bin und mir die Konzentration wie ein Blatt papier reißt, durch das jemand mit einem Zeigefinger hindurchdrückt obwohl er nur umblättern wollte.

Siro
01.02.2019, 10:30
Das automatische Einrücken usw, ist schon okay, da gibt es nix zu meckern.
Ich hab aber in den Optionen, sofern ich es nicht vergesse, immer TABs durch Spaces ersetzen eingestellt.

Ich hab auch, leider oftmals Probleme mit den deutschen Umlauten äöü usw.
Hat man es einmal mit einem "falsch" eingestellten Editor geöffnet und dann gespeichert, kann man das nicht mehr rückgämgig machen.
Ich habe letzte Woche hunderte von Zeilen per Hand wieder ändern müssen. Der Hexcode für die Umlaute sowie Sonderzeichen ließ sich nicht mehr unterscheiden
sonst hätte ich mir ein kleines Programm zum Umkonvertieren geschreiben.


:) na das ist ja geil mit der mittleren Maustaste bei MPLAB, habe ich grad mal ausprobiert. Ohje, das kann sicher nerven, aber teilweise auch eine sinnvolle Funktion, das kannte ich noch garnicht.
Da wir grad bei MPLAB sind, wo kann ich denn das lästige .X abstellen, welches immer automatisch an die Dateiordner angehängt wird ?

Ceos
01.02.2019, 11:07
Da wir grad bei MPLAB sind, wo kann ich denn das lästige .X abstellen, welches immer automatisch an die Dateiordner angehängt wird ?

Interessant, das macht meiner nicht bzw. NOCH nicht, da ich noch nicht den Sprung auf Version 5 gemacht habe!

was mir gerade bei Netbeans und MPLAB mehr auf den Senkel geht ist diese Verwurschtelung der Ordnerstrukturen, wenn ich eine Datei anlege liegt die teils in anderen Unterordnern als im Projekt ... ich habe es mir angewöhnt Dateien und Ordner nicht mehr in der IDE sondern auf der Festplatte anzulegen und dann die Ordnerstrukture in der IDE einmal zu löschen und neu einzulesen.

Dass Dateien durch Konvertierung sterben verhindere ich meistens indem ich überall UTF-8 als Basis nutze.

Siro
01.02.2019, 11:36
Interessant, das macht meiner nicht bzw. NOCH nicht, da ich noch nicht den Sprung auf Version 5 gemacht habe!

was mir gerade bei Netbeans und MPLAB mehr auf den Senkel geht ist diese Verwurschtelung der Ordnerstrukturen, wenn ich eine Datei anlege liegt die teils in anderen Unterordnern als im Projekt ... ich habe es mir angewöhnt Dateien und Ordner nicht mehr in der IDE sondern auf der Festplatte anzulegen und dann die Ordnerstrukture in der IDE einmal zu löschen und neu einzulesen.

Dass Dateien durch Konvertierung sterben verhindere ich meistens indem ich überall UTF-8 als Basis nutze.

Ich hab exakt das gleiche Problem und tatsächlich bin ich auch dazu übergegangen meine Ordner selbst im Explorer anzulegen.

Ich habe nun auch immer UTF-8 eingestellt und deshalb wundert es mich mit der 3 Byte Startsequenz in den Dateien.
Einige haben sie und andere nicht.
Nun hab ich bei einer Datei die keine 3 Byte Startsequenz hatte als erstes Zeichen ein Gradsymbol (°) eingefügt.
Nun hat diese Datei auch die 3 Byte Sequenz am Anfang bekommen.
Dann habe ich das Zeichen wieder entfernt, aber nun bleibt die Sequenz weiterhin in der Datei.
Dieses Verhalten kann ich mir ehrlich gesagt nicht erklären.
Das hab ich aber momentan nur mit meine MCUXpresso IDE probiert, noch nicht mit MPLAB-X.

Siro
01.02.2019, 16:19
Aufgrund der Merkwürdigkeiten mit den Zeichensätzen hab ich grad mal ausprobiert was eigentlich die Funktion
"length" bzw. "strlen" zurückliefert bei Umlauten.

s:='äöüÄÖܵ°';

Delphi 6 liefert mir eine Länge von 8 Zeichen und das ist korrekt
Lazarus liefert mir eine Länge von 16 Zeichen und das ist falsch.
Hier muss man die Unit LazUTF8 einbinden und dann die Funktion UTF8length benutzen.

Mein C-Compiler muss ich erst noch probieren...

Doch nun wünsche ich allen ein schönes Wochenende.

Siro