![]() |
TStringList "Listindex überschreitet das Maximum"
hallo, ich habe da ein Problem
und zwar habe ich in meinem Programm eine Suche.
Delphi-Quellcode:
usw. ist jetzt nicht komplett aber ist auch nicht wichtig bzw das Problem.
for ii := 0 to Foriginal.Count-1 do
begin ss := Foriginal.Strings[ii]; if cb_negate.Checked=false then begin if Pos( LowerCase( Edit1.Text ), LowerCase( ss ) ) > 0 then begin if Pos( LowerCase( Edit2.Text ), LowerCase( ss ) ) > 0 then begin i3:=i3+1; search_add(ss,ii); end; if Edit2.Text = '' then begin i3:=i3+1; search_add(ss,ii); end; end; end ich gehe ja dann in die Prozedur "Search_Add" dort wird dann das ergebnis in das Memo feld geschrieben. So nun möchte ich aber das Suchergebnis zwischenspeichern in einen weiteren TSTRINGLIST
Delphi-Quellcode:
aber da bringt er die Fehler meldung "Listindex überschreitet das Maximum"
procedure TfrmLogView.search_add(ss: String; ii: Integer);
begin mmoLines.Lines.Add( ss ); FSelect.Strings[i3]:=ss; end; und ich weiß nicht so recht warum. i3 ist übirgens gloabal(ich weiß das nicht so gut aber hab auch keine rechte idee dafür um es besser zu machen) über eine Idee, oder hilfe wäre ich echt danlkbar weil ich keine Idee mehr habe.. |
Re: TStringList "Listindex überschreitet das Maximum&am
Deine Stringlist hat einfach nicht genug Zeilen (also weniger als i3 + 1).
|
Re: TStringList "Listindex überschreitet das Maximum&am
Was ist denn i3 an der stelle und Was steht in FSelect.Strings ?
Klingt so als wäre FSelect.Strings.count kleiner als i3+1. Das lässt sich ja leicht abfangen. Und wenns kleiner ist machst du halt statdessen FSelect.Strings.add Das ist allerdings keine garantie dafür, dass der neue string dann auf dem index i3 steht. Wie du das verwaltest musst du dir dann wohl noch überlegen ;) |
Re: TStringList "Listindex überschreitet das Maximum&am
oh
i3 wird bei jeder neuen suche auf -1 gesetzt sprich wenn er search_add aufruft hat er beim ersten mal 0. FSelect.Strings.add funtkioniert nicht, er erwartet ein "[" und FSelect.Strings.count kann ja auch noch nichts haben da ich ja erst angelegt habe und es ihm was zuweißen will. "ss" ist übirgens ein string, wie wohl schon mitbekommen wurde.^^ aber wenn der zu wenige zeilen hat, wie bekomm ich das dann aber hin das er das nicht hat? danke schon mal für die antworten |
Re: TStringList "Listindex überschreitet das Maximum&am
FSelect ist vom Typ TStringlist? Dann muss ein Add() aber gehen.
|
Re: TStringList "Listindex überschreitet das Maximum&am
jup ist vom Typ StringList
aber er sagt mir, wie gesagt "[Fehler] dLogView.pas(626): '[' erwartet, aber '.' gefunden" EDIT: ah FSelect.Add(ss); geht aber wann löscht er dann da wieder die Sachen raus? wäre das dann nicht das er jede weitere Suche das da hinzufügt? |
Re: TStringList "Listindex überschreitet das Maximum&am
FSElect scheint eher ein Array zu sein
|
Re: TStringList "Listindex überschreitet das Maximum&am
achso Fselect ist die stringlist
Sry mein Fehler Dann muss es FSelect.add heissen, nicht Fselect.strings.add Und auch FSelect.Count |
Re: TStringList "Listindex überschreitet das Maximum&am
Cool, danke scheint zu funtkionieren^^
warum das mit dem Strings so nicht funktionierte weiß ich zwar immer noch nicht aber ist ja egal *gg* |
Re: TStringList "Listindex überschreitet das Maximum&am
Weil strings eine ArrayProperty ist die auf einen array von strings zugreift.
Bzw eigentlich auf einen array von records, aber die property gibt nur strings zurück. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 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