Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Wie nach #13#10 im Delphi Editor suchen? (https://www.delphipraxis.net/196579-wie-nach-13-10-im-delphi-editor-suchen.html)

Harry Stahl 31. Mai 2018 20:53

AW: Wie nach #13#10 im Delphi Editor suchen?
 
Zitat:

Zitat von Zacherl (Beitrag 1403571)
Zitat:

Zitat von Harry Stahl (Beitrag 1403569)
Ich habe CNPack installiert, aber die Suchenzeile sieht aus wie sonst auch... Es sind keine Optionen aktiviert.

Ok :) Versuch es trotzdem mal mit \#13\#10. Die anderen Zeichen ? + * sind ebenfalls wie das # Steuerzeichen für RegExe, deshalb muss man sie Escapen, um sie als reguläre Zeichen zu verwenden.

Ja, so funktioniert es, Danke!:thumb:

Ich muss übrigens leider gestehen, dass da doch "Regulärer Ausdruck aktiviert war...":oops:

KodeZwerg 31. Mai 2018 21:00

AW: Wie nach #13#10 im Delphi Editor suchen?
 
Zitat:

Zitat von Harry Stahl (Beitrag 1403572)
Möchte aber dennoch wissen, wie ich das in Delphi hinbekomme...

Bin Deiner Meinung!
Zitat:

Zitat von Zacherl (Beitrag 1403571)
Versuch es trotzdem mal mit \#13\#10.

Danke, wieder was dazu gelernt!:thumb:

Rollo62 1. Jun 2018 06:42

AW: Wie nach #13#10 im Delphi Editor suchen?
 
Hilft dir zwar nicht direkt weiter, aber ich habe alle "MagicNumbers" wie #13#10 in meinen Libraries durch Konstanten ersetzt und in ein globales Unit ausgelagert;

Delphi-Quellcode:
const
  CCrLf   = #13#10;
  CCrLf2   = #13#10#13#10;
  CChar_Cr = #13;
  CChar_Lf = #10;
  // aber auch Sonderzeichen oder Unicodezeichen
  CChar_Paragraph = '§';
  CChar_Semicolon = ';';
So in der Art ...
Das macht es lesbarer, suchbarer und kann man dann notfalls zentral anpassen wenn ein OS sich mal querstellt.
Und auch Fehlerunanfälliger, damit nicht aus einem ';' mal schnell ein ':' wird.

Ich weiss ... muss man mögen ... also bitte versucht mich gar nicht erst umzustimmen.

Rollo

TiGü 1. Jun 2018 07:19

AW: Wie nach #13#10 im Delphi Editor suchen?
 
Ähem...euch ist die Konstante sLineBreak aus der System-Unit bekannt?

Delphi-Quellcode:
const
   sLineBreak = {$IFDEF POSIX} _AnsiStr(#10) {$ENDIF}
       {$IFDEF MSWINDOWS} _AnsiStr(#13#10) {$ENDIF};

freimatz 1. Jun 2018 07:46

AW: Wie nach #13#10 im Delphi Editor suchen?
 
Zitat:

Zitat von Rollo62 (Beitrag 1403590)
Ich weiss ... muss man mögen ... also bitte versucht mich gar nicht erst umzustimmen.

Ich versuche es trotzdem - dich umzustimmen. :wink:
Aber nicht es zu ändern, sondern zu meinen, dass man das mögen muss. Man muss es einfach nur machen - es ist das einzig Richtige wenn man professionell Software entwickeln will. (Alles andere ist nur Bastelei - passiert mir aber auch selber oft genug. :oops:)

bernau 1. Jun 2018 08:46

AW: Wie nach #13#10 im Delphi Editor suchen?
 
Zitat:

Zitat von Rollo62 (Beitrag 1403590)
Ich weiss ... muss man mögen ... also bitte versucht mich gar nicht erst umzustimmen.Rollo

Ich mache das auch schon seit Jahren so. :thumb:

Harry Stahl 1. Jun 2018 08:54

AW: Wie nach #13#10 im Delphi Editor suchen?
 
Zitat:

Zitat von Rollo62 (Beitrag 1403590)
Hilft dir zwar nicht direkt weiter, aber ich habe alle "MagicNumbers" wie #13#10 in meinen Libraries durch Konstanten ersetzt und in ein globales Unit ausgelagert;

Delphi-Quellcode:
const
  CCrLf   = #13#10;
  CCrLf2   = #13#10#13#10;
  CChar_Cr = #13;
  CChar_Lf = #10;
  // aber auch Sonderzeichen oder Unicodezeichen
  CChar_Paragraph = '§';
  CChar_Semicolon = ';';
So in der Art ...
Das macht es lesbarer, suchbarer und kann man dann notfalls zentral anpassen wenn ein OS sich mal querstellt.
Und auch Fehlerunanfälliger, damit nicht aus einem ';' mal schnell ein ':' wird.

Ich weiss ... muss man mögen ... also bitte versucht mich gar nicht erst umzustimmen.

Rollo

CCrLf2 ist unter Geschwindigkeitsaspekten besser als eine Funktion dafür zu schreiben. Mal abgesehen, vom Geschmack, wenn Du nur für die VCL und für Windows compilierst, geht das.

Falls aber weitere Plattformen, die Frage, ob Du dann "CCrLf" je nach Plattform unterschiedlich definiert hast? Sonst wirst Du in bestimmten Fällen kläglich scheitern, wenn Du für andere Plattformen was mit Verarbeitung von Textdateien machst.

Wenn nicht, solltest Du z.B.

CCrLf = #13#10;
CCrLf2 = #13#10#13#10;

umwandeln in

CCrLf = sLineBreak
CCrLf2 = sLineBreak + sLineBrak;

Dann stimmt es für jede Plattform.

bernau 1. Jun 2018 09:05

AW: Wie nach #13#10 im Delphi Editor suchen?
 
Zitat:

Zitat von Harry Stahl (Beitrag 1403597)
Falls aber weitere Plattformen, die Frage, ob Du dann "CCrLf" je nach Plattform unterschiedlich definiert hast? Sonst wirst Du in bestimmten Fällen kläglich scheitern, wenn Du für andere Plattformen was mit Verarbeitung von Textdateien machst.

Wenn nicht, solltest Du z.B.

CCrLf = #13#10;
CCrLf2 = #13#10#13#10;

umwandeln in

CCrLf = sLineBreak
CCrLf2 = sLineBreak + sLineBrak;

Dann stimmt es für jede Plattform.

Das würde ich so direkt nicht unterschreiben. Der Name CrLf impliziert ja diese zwei Chars. Bei dem Namen muss mann davon ausgehen, dass es sich um diese zwei Bytes handelt.

Manchmal ist es auch gewünscht (plattformunabhängig) nach diesen zwei Zeichen zu suchen oder diese zu schreiben.

Harry Stahl 1. Jun 2018 09:07

AW: Wie nach #13#10 im Delphi Editor suchen?
 
Zitat:

Zitat von TiGü (Beitrag 1403591)
Ähem...euch ist die Konstante sLineBreak aus der System-Unit bekannt?

Delphi-Quellcode:
const
   sLineBreak = {$IFDEF POSIX} _AnsiStr(#10) {$ENDIF}
       {$IFDEF MSWINDOWS} _AnsiStr(#13#10) {$ENDIF};

Ja schon, aber das Projekt, das ich gerade auf FMX konvertiere, wurde noch mit Delphi 2007 entwickelt, da habe ich mir solche Gedanken noch nicht gemacht (obwohl es schon für Delphi 2007 diese Konstante gab, die sogar eine Unterscheidung für Linux machte, wohl wegen KyLix)

Mein ANnewL entspricht ansonsten sLineBreak.

Die Umstellung (meines E-Mail-Programms Safer Mail) ist jetzt doppelt hart: von Ansicode auf Unicode, andere Plattformen und Zeichensatz-Gedöns auf allen Plattformen.... Uff

Rollo62 1. Jun 2018 09:08

AW: Wie nach #13#10 im Delphi Editor suchen?
 
Hallo Harry, und Tigü,

Zitat:

Ähem...euch ist die Konstante sLineBreak aus der System-Unit bekannt?
Richtig, kann man so benutzen.
Aber ich vertaue meinen eigenen Definitionen im Moment leider mehr als den Emba-Libraries :stupid:

Schliesslich sollen die Apps ja auch noch in den nächsten Versionen funktionieren.


Zitat:

Der Name CrLf impliziert ja diese zwei Chars.
Das war auch mein Gedanke dazu, das CrLf nutze ich z.B. da wo es NICHT auf Win oder Linux ankommt, z.B. Texte in einer DB, String-Austausch per Internet, etc.
Was per se multi-plattform stabil und zwischen OS austauschbar sein muss,
ich bin kein großer Freund von "Konstanten", wie LineBreak, die heute so und morgen anders sind.

Rollo


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:09 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz