AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Zeilennummer einer Zeichenkette heausfinden?
Thema durchsuchen
Ansicht
Themen-Optionen

Zeilennummer einer Zeichenkette heausfinden?

Ein Thema von capo · begonnen am 11. Jul 2006 · letzter Beitrag vom 12. Jul 2006
Antwort Antwort
Seite 1 von 2  1 2      
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#1

Zeilennummer einer Zeichenkette heausfinden?

  Alt 11. Jul 2006, 12:24
HIHO ,

wie kann ich in einem memo die zeilennummer einer zeichenkette heausfinden?
kommt nur 1x vor.


gruss
capo
Hotte
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#2

Re: Zeilennummer einer Zeichenkette heausfinden?

  Alt 11. Jul 2006, 12:31
  zeilennumer:= memo.lines.indexof('der zeilen text');
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#3

Re: Zeilennummer einer Zeichenkette heausfinden?

  Alt 11. Jul 2006, 12:33
Hi!

Schau mal:


Zitat:
Aktuelle Zeile und Spalte in Memos

Durch zwei Aufrufe der API-Funktion "SendMessage" erfaehrt man die aktuelle Position des Cursors in Memo- oder RichEditfeldern. Im folgenden Beispiel werden die zwei Aufrufe im OnKeyDown-Ereignis ausgefuert und die Angabe von Spalte und Zeile in einer StatusBar angezeigt.

Delphi-Quellcode:
Procedure TForm1.Memo1KeyDown(Sender: TObject; Var Key: Word; Shift: TShiftState);
Var Zeile, Spalte, ChrVor: LongInt;
Begin
  Zeile := SendMessage(Memo1.Handle, EM_LINEFROMCHAR, SelStart, 0);
  ChrVor:= SendMessage(Memo1.Handle, EM_LINEINDEX, Zeile, 0);
  Spalte:= SelStart - ChrVor + 1;
  StatusBar1.SimpleText:= SysUtils.Format('%4d:%4d', [Zeile + 1, Spalte]);
End;

Quelle: http://www.rudolf-software.de/delphitips.html


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Zeilennummer einer Zeichenkette heausfinden?

  Alt 11. Jul 2006, 12:38
hi

irgendwie bekomme ich immer -1 angezeigt, mach ich was falsch?

Delphi-Quellcode:
procedure TForm2.Button3Click(Sender: TObject);
var
zeilennumer:integer;
begin
zeilennumer:= advmemo1.lines.indexof('Test');
showmessage(inttostr(zeilennumer));
end;
Hotte
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Zeilennummer einer Zeichenkette heausfinden?

  Alt 11. Jul 2006, 12:40
danke, aber ich muss doch zuerst die position des wortes (zeichenkette) haben dann will ich den cursor an die stelle setzen
Hotte
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#6

Re: Zeilennummer einer Zeichenkette heausfinden?

  Alt 11. Jul 2006, 12:56
Hallo,

zuerst mal, Du kannst Deine Beiträge editieren.

Nun zu Deinem Problem: IndexOf gibt nur eine Zeilennummer zurück, wenn der übergebene String exakt der Zeile entspricht. Das wird bei Dir nicht der Fall sein.
Versuch mal Folgendes:
Delphi-Quellcode:
procedure TForm2.Button3Click(Sender: TObject);
var
  ZeilenNummer: Integer;
begin
  for ZeilenNummer := 0 to advmemo1.lines.Count - 1 do // Sämtliche Zeilen durchgehen
    if Pos('Test', advmemo1.Lines[ZeilenNummer]) > 0) then // ist gesuchter Begriff in Zeile?
    begin
      ShowMessage(IntToStr(ZeilenNummer)); // Ausgeben..
      Exit; // ...und raus
    end;

  ShowMessage('Zeile nicht gefunden!'); // Nichts gefunden
end;
Gruß
xaromz
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Zeilennummer einer Zeichenkette heausfinden?

  Alt 11. Jul 2006, 13:09
danke für deine hilfe und erklärungen, das funktioniert
Hotte
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Zeilennummer einer Zeichenkette heausfinden?

  Alt 11. Jul 2006, 18:24
weiß jemand warum mit dem beispiel oben kein datum ausgelesen wird in dem format?
21:05:57
bekomme die meldung:
Zitat:
---------------------------
Data
---------------------------
Zeile nicht gefunden!
---------------------------
OK
---------------------------
ist doch kein unterschied ob strings integer, oder doch?
gruss
capo
Hotte
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: Zeilennummer einer Zeichenkette heausfinden?

  Alt 11. Jul 2006, 19:34
Hi,

wolltest du nicht das gefundene Wort markieren?

Delphi-Quellcode:
function FindFirst(memo: TMemo; search: String): Boolean;
var
  iStart: Integer;
begin
  search := AnsiLowercase(search);
  with memo do
  begin
    iStart := Pos(search, AnsiLowercase(Text));
    Result := iStart > 0;
    if Result then
    begin
      SelStart := Pred(iStart);
      SelLength := Length(search);
    end;
  end;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Zeilennummer einer Zeichenkette heausfinden?

  Alt 12. Jul 2006, 09:06
hallo marabu

stimmt, ich wollte dann sogar die ganze zeile markieren.
wie das mit dem memo gemacht wird hab ich schon rausbekommen.
ich muss nur noch wissen warum das beispiel oben keine uhrzeit findet.
funktioniert das bei dir?

gruss vom capo
Hotte
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:59 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