CopyFromPosToPos -> StrUtils?

Rund um die LCL und andere Komponenten
Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: CopyFromPosToPos -> StrUtils?

Beitrag von Socke »

Hier stehen sich Lazarus und FPC regelmäßig selbst im Wege:
  • FPC hat recht lange Releasezyklen für stabile Versionen, auch wenn die FCL deutlich häufiger und unabhängig vom Compiler aktualisiert werden könnte.
  • Lazarus will mindestens die letzten beiden stabilen FPC Versionen unterstützen (hab ich mal irgendwo gelesen)
Damit muss Lazarus manchmal Funktionen bereitstellen, die in der FCL besser aufgehoen wären, nur um die Kompatiblitiät zu einer älteren FPC-Version zu gewährleisten - oder um schneller eine Funktion bereitstellen zu können.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: CopyFromPosToPos -> StrUtils?

Beitrag von theo »

Oder der Code wird - wie hier - hauptsächlich für die IDE gebraucht.
GetPart wird fast ausschliesslich von den Debugger Units verwendet.
So ist es auch dokumentiert und deshalb dachte ich zunächst nicht, dass es eine allgemein nützliche Funktion sein könnte, welche in etwa die in diesem Thread besprochene Funktionalität bereitstellt.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: CopyFromPosToPos -> StrUtils?

Beitrag von wp_xyz »

Anders herum: Wenn deine Funktion, deren Aufruf allgemeinverständlich und für jeden nutzbar ist, in StrUtils vorhanden wäre, könnten die Lazarus-Leute ihre Funktion auf deine umlenken und würden sich den eigenen Code sparen.

Ich würde das Thema nicht aufgeben, sondern einen Patch für FPC einreichen.

Man muss nur aufpassen, dass alles UTF-8 kompatibel bleibt, es gibt einige Funktionen in der FCL, die nur mit Widestrings laufen. Und übrigens: Michael Van Canneyt arbeitet einer UTF16-kompatiblen RTL (https://lists.freepascal.org/pipermail/ ... 44943.html)...

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: CopyFromPosToPos -> StrUtils?

Beitrag von theo »

Das geht nicht, denn GetPart hat einen Parameter "AnIgnoreCase".
Diese Funktion bedient sich einer speziellen Variante von "Pos", namens "PosI", ebenfalls in LazStringUtils.
Diese ist case-insensitive, aber nur für ASCII:

Code: Alles auswählen

function PosI(const SubStr, S: string): integer;   
// A case-insensitive optimized version of Pos(). Comparison Supports only ASCII.
// Can be used instead of common but slower Pos(UpperCase(SubStr),UpperCase(S));  
Die einfache, von mir in diesem Thread gezeigte Funktion ist case-sensitive.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: CopyFromPosToPos -> StrUtils?

Beitrag von wp_xyz »

Diesen Parameter wollte ich ohnehin auch für deine Funktion empfehlen, zumindest optional.

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: CopyFromPosToPos -> StrUtils?

Beitrag von theo »

Durch die "Entdeckung" von GetPart ist für mich das Problem eigentlich gelöst.
Ich wüsste deshalb nicht, warum ich die Funktion neu schreiben sollte.
Ob StrUtils oder LazStringUtils ist mir persönlich nicht so wichtig.

Aber wenn du diese Funktionalität in StrUtils einbringen möchtest, habe ich bestimmt nichts dagegen.

Antworten