![]() |
AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f
Zitat:
|
AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f
|
AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f
Hi habe jetzt folgendes hinbekommen..
Delphi-Quellcode:
Das funktioniert schonmal, er sucht nach dem Wort "test" und nimmt dann den wert zwischen GesLänge(A) und GesLänge/(B)procedure TForm1.Button6Click(Sender: TObject); var s, s2: string; Pos1, Pos2, Pos3: Integer; begin s := memo1.Text; Pos1 := Pos('test', s); // erstes Komma Pos2 := PosEx('GesLänge/(A):', s, Pos1+1); // zweites Komma Pos3 := PosEx('GesLänge/(B):', s, Pos2+1); // drittes Komma s2 := Copy(s, Pos2+14, Pos3 - Pos2 -15); // Text zwischen 2. und 3. Komma Edit2.text := (Trim(s2)); // Leerzeichen entfernen und ausgeben end; wie kann ich nun noch über Pos die zeilen / reihen bestimmen ? also z.B. pos1 := Pos('test'), s; Pos2 := PosEx( ?????, s, Pos1+1); // statt ????? z.B. unter gefundenem wort "test" eine reihe darunter. Memo feld aufbau test hallo katze Reihe 1 = test Reihe 2 = hallo katze nun würde ich gerne wissen wie ich auf die reihe zwei per pos komme.. vielen Dank nochmal für die ganzen tipps.. |
AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f
Zitat:
Delphi-Quellcode:
function textsuch(charrarr: Array of Char; length, count, pos: integer): Integer;
begin if count = length then begin Result := pos - count; exit; end; if Memo1.Lines.Text[pos] = charrarr[count] then Result := textsuch(charrarr, length, count+1, pos+1) else Result := -1; end; |
AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f
danke für die funktion, kannst du mir kurz sagen wie ich diese ansteuere ?
|
AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f
@PhilmacFly: Toll. Wieso postest Du eigentlich immer neuen Code, anstatt einfach mal eine allgemeingültige Lösung?
Dein nächster Versuch sollte alle Vorkommnisse in einer Zeile finden. Und verwende garantiert keine vorgefertigten Lösungen, wie z.B. 'PosEx'. Das wäre ja ... naheliegend? |
AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f
Zitat:
Echte Kerle programmieren alles selber ... ich selber wollte 2 Strings in einer Text-Datei speichern und nun bin ich seit ca. 2.5 Jahren dabei ein eigenes Dateisystem zu schreiben. Sieht gut aus, das Speichern geht, nur mit dem Auslesen hapert es noch :mrgreen: |
AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f
Zitat:
Aber warum den ganzen Tag darüber reden wie man es machen könne, warum nicht in 10 Minuten es Coden
Delphi-Quellcode:
function WortAnPos(s: String; p: Integer): String;
var i: Integer; begin if Pos(' ', s) < p then begin for i := p downto 1 do if s[i] = ' ' then begin Delete(s, 1, i); Break; end; end; Result := s; if Pos(' ', Result) > 0 then Delete(Result, Pos(' ', Result), maxint); end; function _darunter(list: TStrings; Index, p: Integer): String; var s: String; begin if Index = 0 then Exit; Result := WortAnPos(list[Index - 1], p); end; function _darueber(list: TStrings; Index, p: Integer): String; begin if Index = list.Count - 1 then Exit; Result := WortAnPos(list[Index + 1], p); end; function _links(s: String; p: Integer): String; begin Delete(s, p, Maxint); if LastDelimiter(' ', s) > 0 then Delete(s, LastDelimiter(' ', s), Maxint); if LastDelimiter(' ', s) > 0 then Result := Trim(Copy(s, LastDelimiter(' ', s), Maxint)) else Result := Trim(s); end; function _rechts(s, substr: String; p: Integer): String; begin Delete(s, 1, p + length(substr)); if Pos(' ', s) > 0 then begin Delete(s, 1, Pos(' ', s)); Result := Trim(Copy(s, 1, Pos(' ', s))) end else Result := Trim(s); end; procedure TForm1.Button1Click(Sender: TObject); const gesucht = 'bb'; var i, p: Integer; s: String; begin Memo1.Clear; Memo1.Lines.Add('1111 2222 3333 4444'); Memo1.Lines.Add('aaaa bbbb cccc dddd'); Memo1.Lines.Add('5555 6666 7777 8888'); for i := 0 to Memo1.Lines.Count - 1 do begin s := Memo1.Lines[i]; p := Pos(gesucht, s); if p > 0 then begin ShowMessage('Links: ' + _links(s, p)); ShowMessage('Rechts: ' + _rechts(s, gesucht, p)); ShowMessage('Draunter: ' + _darunter(Memo1.Lines, i, p)); ShowMessage('Draunter: ' + _darueber(Memo1.Lines, i, p)); end; end; end; |
AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f
[QUOTE=Sir Rufo;1151793]
Zitat:
|
AW: Suche bestimmten Wert in Memo und zeige mir den neben stehenden Wert an im Edit f
vielen Dank :) das hilft mir schon super weiter ..
dankeschön |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:43 Uhr. |
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