![]() |
booleanvariable immer false?
hmm
ich überprüfe hier zwei listen miteinander - sollte ein wert in der anderen auftauchen wird für den durchgang eine boolean variable umgeschalten damit sollte es nicht der fall sein der wert aus einer 3ten liste geladen werden kann... irgendwie bleibt aber change immer false :(
Delphi-Quellcode:
ich such schon ewig was da falsch sein könnte :( auch die schleife schon durchgestept
procedure TForm1.DoItClick(Sender: TObject);
var hilftext, lw : String; i,e : Integer; liste, liste2 : TSTringdynarray; text : String; change : boolean; begin change := false; memo1.Text := memo1.text + ' '; liste := explode(' ',Memo1.Text); liste2 := explode(' ',Memo1.Text); for i := low(liste) to high(liste) do liste[i] := sortWirrWarr(liste[i]); for i := low(liste) to high(liste) do begin if length(liste[i]) > 3 then // das zB soll gleichbleiben begin for e := 0 to Virtlist.Count-1 do if liste[i] = Virtlist[e] then // wenn liste[i](wirrwar) gleich listeneintrag[e] begin liste[i] := Virtlist1[e]; // wort austauschen mit richtiger Wortliste change := true; //änderung stadtgefunden end end else liste[i]:= liste2[i]; if change = false then liste[i]:= liste2[i]; // bei der letzten überprüfung eines wortes bleibt es gleich change := false; end; grüße Nico |
Re: booleanvariable immer false?
In Zeile 36 setzt du die Variable in jedem Fall auf false.
|
Re: booleanvariable immer false?
Außerdem nicht auf
Delphi-Quellcode:
prüfen, sondern auf
if BoolVar = false / true then
Delphi-Quellcode:
if BoolVar then
// oder if not BoolVar then |
Re: booleanvariable immer false?
Delphi-Quellcode:
das liegt daran dass am ende change auch immer auf false gesetzt wird (muss ja wieder auf true schaltbar sein damit man den ursprünglichen wert behält)
if change = false then
liste[i]:= liste2[i]; // bei der letzten überprüfung eines wortes bleibt es gleich change := false; ja das mit dem not hab ich korregiert danke :D aber das wars leidern icht geht immer noch nix :( |
Re: booleanvariable immer false?
Nico, hast du schon eine Ausführen auf die Position von Change := true gemacht?
Dann einen Step weiter gehen und den Variablenwert analysieren ... wenn er dann immer noch false ist, stimmt was nicht ... oder Optimierts der Compiler so zusammen, dass es trotzdem geht? mfG Markus |
Re: booleanvariable immer false?
Hallo Nico,
wenn du deine VirtList sortierst, dann musst du nicht ständig über die ganze Liste iterieren. In meinem Code ist SortedList die Liste mit den normierten Strings (CINO für Nico) und in TextEdit steht der zu verwendende Buchstabenvorrat. In Objects steht der Index des nicht-normierten Strings im Wörterbuch - bei mir eine ListBox:
Delphi-Quellcode:
Grüße vom marabu
procedure TDemoForm.MatchButtonClick(Sender: TObject);
var i: Integer; begin if SortedList.Find(SortedString(Uppercase(TextEdit.Text)), i) then begin i := Integer(SortedList.Objects[i]); ShowMessage(ListBox.Items[i]); end; end; |
Re: booleanvariable immer false?
hey danke :thumb:
aber könntest du mir anhang meines beispiels dass noch nochmal erklären ich hab ein memo - da kommen normale sätze rein die wörter kommen in eine liste - eine weitere liste nimmt die nach buchstaben sortieren wörter dann auf dann gibts ein wörterbuch und ein wörterbuch sortiert ich vergleiche listesortiert mit wörterbuchsortiert und sollte etwas zutreffen nehm ich den index und nehm das richtige wort aus wortlistekorrekt --> sollte ein wort weniger als 4 buchstaben haben(mittelbuchstabe also nicht austauschbar) oder ein wort nicht im wörterbuchstehen(weils korrekt geschrieben wurde oder halt einfach nicht da ist) nehm ich wieder das ursprüngliche wort was in der unsortieren liste ist anschliesend füge ich per implodefunction den alten satz wieder zusammen und eben jene schritte finden dort statt grüße Nico ps.: die idee entstand in rahmen eines wettbewerbes von wem anderen un dich hab eigentlich dass ganze nach delphi exportiert(also die idee) - nicht dass mir da wer was vorwirft ;) - der delphicode wird natürlich sobald er korrekt ist veröffentlicht ;) |
Re: booleanvariable immer false?
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Nico,
Zitat:
Schau dir die Demo mal an - und versuche zu verstehen. Keine Angst, es bleibt noch genug Arbeit für dich. Freundliche Grüße vom marabu |
Re: booleanvariable immer false?
vielen herzlichen Dank :)
ich schaus mir gerade an - einfach super :thumb: der unterscheid ist halt dass du das problem mit den zwei listen nicht hast da du mit dem inputquery ja immer korrigieren lässt ;) was natürlich ne angenehme variante ist - danke =) grüße Nico :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:45 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