Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Array/For-Schleife/Ich weis nicht (https://www.delphipraxis.net/103544-array-schleife-ich-weis-nicht.html)

Tommy1988 17. Nov 2007 02:32


Array/For-Schleife/Ich weis nicht
 
Guten Abend :)

Undzwar geht es um folgendes:
Wenn ich z.b. folgendes in meinen Editor eingebe
Delphi-Quellcode:
 if Copy(SynMemo1.Text, CurPosition-22, 23) =
 '[list=1]' then
bekomme ich, dank Progman's Hilfe, den Endtag des Haupttags automatisch hinzugefügt.

So.. jetzt kann ich aber schlecht
für jede Zahl (start="1", start="2", start="3" ...) eine If-Abfrage machen.

Ich hatte es schon mit einem Array und einer ForSchleife versucht.
Die For-schleife ist ABSOLUT ressourcenunfreundlich ..

Wie kann man dieses start="" so umgestalten,
dass es egal ist, welche Zahl man zwischen ""'s eingegeben hat?
Ich habe mal etwas in etwa so gelesen
(Schemtaisch)
Wenn Zahl in [1..100]
tue ...

Aber ich weis nicht ob das so richtig wäre?

turboPASCAL 17. Nov 2007 06:05

Re: Array/For-Schleife/Ich weis nicht
 
Du musst einfach nur dein zu testenden String auseinander nehmen und nachsehen was zwischen den
Anführungszeichen steht.

zB. so:

Delphi-Quellcode:
 procedure // ...
var
  TempStr1: String;
  TempStr2: String;
begin
  // ...

  TempStr1 := Copy(SynMemo1.Text, CurPosition-22, 23);
  TempStr2 := '';

  SoUndSo := False;

  if Pos('[list=1] 0 then
  begin
    Delete(TempStr1, 1, length('<ol start="'));

    TempStr2 := Copy(TempStr1, 1, Pos('"', TempStr1)-1);

    if StrToInt(TempStr2) in [1..100] then SoUndSo := True;
  end;


  // ...
end;

DP-Maintenance 17. Nov 2007 08:19

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Das ist eine Delphi-Frage.

Progman 17. Nov 2007 10:19

Re: Array/For-Schleife/Ich weis nicht
 
hm, wenn man vereinbaren könnte, dass ein Tag immer nur in einer Zeile steht, bräuchte man doch nur das Vorhandensein des Anfangs-Tag prüfen, nachschauen, ob es einen End-Tag in dieser Zeile gibt und wenn nicht, ihn einfach hinten dran hängen. Das wäre die einfachste Variante. Alles Andere ist relativ schwierig.
Man müsste den Tag analysieren (gibt ja viele), herausfinden wieviele Parameter nach dem Schema ('art="wert"') existieren und dann prüfen, ob danach der korrekte Abschluss-Tag folgt. Manche Tags erfordern ja ' />', nicht nur '>'.
Das ist schon eine sehr komplexe Angelegenheit.
Beispiel: [img]bild.jpg[/img]' als Abschluss-Tag erfordern während <a href="blubb.php" target="_blank" nur ein '>' erfordern würde.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 Uhr.

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