"Damals" hat's aber auch keine TStringList gegebenmschnell hat geschrieben:Nee stimmt leider nicht ganz !!!diogenes hat geschrieben:Auf 255 Zeichen beschränkte, schnelle Strings kannst du mit dem Typ shortstring machen. Funktioniert so wie damals.
TStringlist etc ist idiotischer Weise auf einen String-Typ festgenagelt (heute auch noch auf einen bestimmte Codierung (fpc: auf UTF8, Delphi XE auf UF-16).
Dadurch ist jede Menge User Source Code nicht mehr kompatibel.
-Michael
Haltet ihr Pascal für eine sterbende Sprache?
-
diogenes
- Beiträge: 200
- Registriert: So 11. Jul 2010, 18:39
- OS, Lazarus, FPC: Linux
- CPU-Target: 64 Bit
- Wohnort: Wien
- Kontaktdaten:
Re: Haltet ihr Pascal für eine sterbende Sprache?
Ceterum censeo computatores per Pascal docendos esse.
Re: Haltet ihr Pascal für eine sterbende Sprache?
Ob der String Type unter FPC mehr als 255 Zeichen aufnehmen kann oder eben nur 255 Zeichen hängt vom Compiler Schalter {$H} ab. Ist der nicht gesetzt, kann er auch nur 255 Zeichen aufnehmen.
-
diogenes
- Beiträge: 200
- Registriert: So 11. Jul 2010, 18:39
- OS, Lazarus, FPC: Linux
- CPU-Target: 64 Bit
- Wohnort: Wien
- Kontaktdaten:
Re: Haltet ihr Pascal für eine sterbende Sprache?
Ah, ja. RichtigJole hat geschrieben:Ob der String Type unter FPC mehr als 255 Zeichen aufnehmen kann oder eben nur 255 Zeichen hängt vom Compiler Schalter {$H} ab. Ist der nicht gesetzt, kann er auch nur 255 Zeichen aufnehmen.
Ceterum censeo computatores per Pascal docendos esse.
-
Mathias
- Beiträge: 7105
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Haltet ihr Pascal für eine sterbende Sprache?
Dies geht schon mal nicht.diogenes hat geschrieben:Auf 255 Zeichen beschränkte, schnelle Strings kannst du mit dem Typ shortstring machen. Funktioniert so wie damals.
Um zum Thema zurück zu kommen: Nein, ich halte Pascal nicht für eine sterbende Sprache
Code: Alles auswählen
var
s: ShortString;
begin
s := 'ö';
WriteLn(Length(s)); Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
diogenes
- Beiträge: 200
- Registriert: So 11. Jul 2010, 18:39
- OS, Lazarus, FPC: Linux
- CPU-Target: 64 Bit
- Wohnort: Wien
- Kontaktdaten:
Re: Haltet ihr Pascal für eine sterbende Sprache?
Da sollte 2 heraus kommen, oder irre ich mich?Mathias hat geschrieben:Dies geht schon mal nicht.diogenes hat geschrieben:Auf 255 Zeichen beschränkte, schnelle Strings kannst du mit dem Typ shortstring machen. Funktioniert so wie damals.
Um zum Thema zurück zu kommen: Nein, ich halte Pascal nicht für eine sterbende SpracheDies ist natürlich nicht ein Problem von Pascal, sondern von den heutigen OS.Code: Alles auswählen
var s: ShortString; begin s := 'ö'; WriteLn(Length(s));
Ceterum censeo computatores per Pascal docendos esse.
-
Mathias
- Beiträge: 7105
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Haltet ihr Pascal für eine sterbende Sprache?
Ja, es kommt 2, ich hätte dies noch schreiben sollen.Da sollte 2 heraus kommen, oder irre ich mich?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
diogenes
- Beiträge: 200
- Registriert: So 11. Jul 2010, 18:39
- OS, Lazarus, FPC: Linux
- CPU-Target: 64 Bit
- Wohnort: Wien
- Kontaktdaten:
Re: Haltet ihr Pascal für eine sterbende Sprache?
Das hat nichts mit dem Format zu tun, in dem die Bytes verwaltet werden, sondern damit, wie besagte Bytes die Zeichen codieren. Lazarus codiert grundsätzlich UTF-8, wenn ich mich nicht irre, also auch beim kurzen String.Mathias hat geschrieben:Ja, es kommt 2, ich hätte dies noch schreiben sollen.Da sollte 2 heraus kommen, oder irre ich mich?
Ceterum censeo computatores per Pascal docendos esse.
-
mschnell
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Haltet ihr Pascal für eine sterbende Sprache?
Doch das ist ein Problem des Compilers.Mathias hat geschrieben:Dies ist natürlich nicht ein Problem von Pascal, sondern von den heutigen OS.
Bei
s := 'ö';
nimmt der Compiler - ohne, dass der Anwender das weiß - für 'ö' die UTF-8 Codierung an (Literale sind default-mäßig als "lange" Strings mit UTF-8 Codierung angelegt. Bei der Zuweisung an einen Shortstring wird keine automatische UTF-8 nach ANSI - Umwandlung durchgeführt, Short-Strings also auch als UTF-8 codiert angesehen (also anders als "damals", wo sie als ANSI-codiert angesehen wurden).
Das alles muss durchaus nicht so sein, unabhängig vom Betriebssystem. Wenn es vom Betriebssystem abhängig ist, verrät FPC seinen Slogan "code once, compile everywhere". Kompatibel zu Delphi 7 (ANSI), Delphi-XE (UTF-16) oder älteren Versionen von fpc (ANSI) ist es ohnehin nicht.
-Michael
Re: Haltet ihr Pascal für eine sterbende Sprache?
Ich glaub nicht das das ein Compiler Problem ist, ich glaube eher es kommt darauf an wem man den String/ShortString übergibt. In einem Konsolen Programm funktionieren die umlaute, im Grafikmodus aber nicht. Es scheint also eine Interpretationssache des Empfängers zu sein.mschnell hat geschrieben:Doch das ist ein Problem des Compilers.Mathias hat geschrieben:Dies ist natürlich nicht ein Problem von Pascal, sondern von den heutigen OS.
...
-Michael
Ich bin mal gespannt wann der ersten Anpfiff kommt weil wir wieder mal vom Thema abweichen sind.
Re: Haltet ihr Pascal für eine sterbende Sprache?
Genauso muss er wissen, dass hinter dem letzten "end" ein Punkt stehen muss, und dass nach einem "begin" kein Strichpunkt sein darf. Wenn der Anwender nicht weiß, dass Lazarus mit UtF8 arbeitet, und dass die meisten UTF8-Zeichen aus mehreren Bytes bestehen, dann muss er das halt lernen. Das ist der Preis des Fortschritts.mschnell hat geschrieben:[...]ohne, dass der Anwender das weiß[...]
-
mschnell
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Haltet ihr Pascal für eine sterbende Sprache?
Naja. Die Syntax ist Pascal Standard relativ klar und bei Fehlern meckert der Compiler. Die String Codierung ist speziell nur bei fpc/Lazarus UTF8, ziemlich unübersichtlich (wenn man gleichzeitig mit mehr als einer Codierung arbeiten möchte oder muss sogar ziemlich unlogisch) und Fehleinschätzungen stellen sich erst zur Laufzeit heraus.
-Michael
-Michael
-
pluto
- Lazarusforum e. V.
- Beiträge: 7193
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Haltet ihr Pascal für eine sterbende Sprache?
Ich bin mal so frei ok? Macht doch für jedes Thema ein eigenen Thread auf, hier sind schon zwei Themen drin, die einen eigenen Thread verdient hätten oder?Ich bin mal gespannt wann der ersten Anpfiff kommt weil wir wieder mal vom Thema abweichen sind.
Und ob es daran liegt, dass Pascal so wenig Verbreitet ist, bezweifel ich.
MFG
Michael Springwald
Michael Springwald
-
marcov
- Beiträge: 1104
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Haltet ihr Pascal für eine sterbende Sprache?
Die Sprache nicht, die endlose TP/shortstring und Unicode Posts hier wiegende, bin ich mir weniger Sicher von die Anwender :_)diogenes hat geschrieben:Auf 255 Zeichen beschränkte, schnelle Strings kannst du mit dem Typ shortstring machen. Funktioniert so wie damals.
Um zum Thema zurück zu kommen: Nein, ich halte Pascal nicht für eine sterbende Sprache
-
pluto
- Lazarusforum e. V.
- Beiträge: 7193
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Haltet ihr Pascal für eine sterbende Sprache?
Die ganzen Codier Sachen sind immer ein Problem. Ich weiß auch nicht warum. Jedesmal wenn es um Umlaute geht, muss ich auch erst mal schauen, wie die Lösung war. Früher hat das besser geklappt....Die Sprache nicht, die endlose TP/shortstring und Unicode Posts hier wiegende, bin ich mir weniger Sicher von die Anwender :_)
MFG
Michael Springwald
Michael Springwald
-
diogenes
- Beiträge: 200
- Registriert: So 11. Jul 2010, 18:39
- OS, Lazarus, FPC: Linux
- CPU-Target: 64 Bit
- Wohnort: Wien
- Kontaktdaten:
Re: Haltet ihr Pascal für eine sterbende Sprache?
Nein, ich halte Pascal nicht für eine sterbende Sprache.mschnell hat geschrieben:Der Vorschlag wurde auch gemacht, vom den fpc-Team aber abgelehnt.pluto hat geschrieben:na und? Wozu gibt es den Delphi Modus? Im normalen Modus kann das ja anders gehandhabt werden. Oder spricht was dagegen?
Ein weiteres Problem ist auch die dämliche Art wie die String-Library implementiert ist. Es gibt eine Library für 1-Byte Chrs (ANSI und UTF8) und eine weitere unabhängige für 2-Byte Chars (UTF-16) und gar keine für 4-Byte Chars (UTF-32). Um also etwas wirklich sinnvolles zu machen, mit Strings die statisch und/oder dynamisch alle sinnvollen String-Typen enthalten können, müsste man die Library komplett um bzw neu schreiben. Und man ist froh, dass man gerade geschafft hat alle Delphi Quirks ziemlich kompatibel einzubauen.
-Michael
Ceterum censeo computatores per Pascal docendos esse.