Autor Beitrag
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 24.05.07 10:18 
Hallo,

ich hab mal ne Frage:
Wie kann ich die Zeichen, Tabs in genau der Zeile eines TMemo bestimmen, wo der Text angefangen wird zu markieren?

Bsp:
Angenommen der orange markierte Text wäre markierter Text in einem Memo (SelText). Wie kann ich die Anzahl der Zeichen und Tabs (falls vorhanden) in der obersten orangen Zeile ermitteln, die zwischen Zeilenanfang und dem ersten (fetten) "t" liegen?

text text text
[highlight]text text text
text text text
text text text[/highlight]
text text

Ich hoffe, jemand hat einen Rat bzw. ein Beispiel.

Danke im Voraus.

Viele Grüße

rd3
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Do 24.05.07 10:25 
nur leerzeichen und tabs oder alle Zeichen?

lg el

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 24.05.07 10:37 
nur leerzeichen und tabs...
es geht um das auskommentieren von ini-dateien...

im allgemeinen beginnt man die ja an der ersten position. falls das aber mal nicht so ist, so würde ich gern das semikolon an die erste stelle der zeile setzen, da es nur dort als kommentar gilt...

// Edit: sorry, damit wären ja auch alle anderen Zeichen eingeschlossen.

gruß
rd3
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 24.05.07 12:04 
hat keiner einen tip/hilfe? :(
chrisw
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 439
Erhaltene Danke: 3

W2K
D7
BeitragVerfasst: Do 24.05.07 12:41 
Ich könnte mir sowas vorstellen :

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
var i,Shifts,Tabs : Integer;
begin
  i := Memo1.SelStart;
  Shifts := 0;
  Tabs   := 0;
  while (i > 0) do
  begin
    case Memo1.Text[i] of
           #9  : inc(Tabs);    //Tabanzahl erhöhen
           #32 : inc(Shifts);  //Leerzeichenanzahl erhöhen
           #13 : break;  //Anfang der Zeile erreicht
    end;
    dec(i);   
  end; 
  //Tue etwas mit den Werten aus Shifts und Tabs
end;

_________________
Man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug.
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 24.05.07 13:14 
yo, danke... so in der art mach ichs.