AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

booleanvariable immer false?

Ein Thema von Nicodius · begonnen am 3. Mai 2006 · letzter Beitrag vom 4. Mai 2006
Antwort Antwort
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#1

booleanvariable immer false?

  Alt 3. Mai 2006, 16:37
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:
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;
ich such schon ewig was da falsch sein könnte auch die schleife schon durchgestept

grüße Nico
Nico Müller
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: booleanvariable immer false?

  Alt 3. Mai 2006, 16:40
In Zeile 36 setzt du die Variable in jedem Fall auf false.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: booleanvariable immer false?

  Alt 3. Mai 2006, 16:45
Außerdem nicht auf

if BoolVar = false / true then prüfen, sondern auf

Delphi-Quellcode:
if BoolVar then

// oder

if not BoolVar then
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#4

Re: booleanvariable immer false?

  Alt 3. Mai 2006, 16:56
Delphi-Quellcode:
 if change = false then
       liste[i]:= liste2[i]; // bei der letzten überprüfung eines wortes bleibt es gleich
     change := false;
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)


ja das mit dem not hab ich korregiert danke aber das wars leidern icht geht immer noch nix
Nico Müller
  Mit Zitat antworten Zitat
markusj

Registriert seit: 9. Dez 2005
Ort: Kandel
408 Beiträge
 
#5

Re: booleanvariable immer false?

  Alt 3. Mai 2006, 17:37
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
Markus
  Mit Zitat antworten Zitat
marabu

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

Re: booleanvariable immer false?

  Alt 3. Mai 2006, 18:39
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:
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;
Grüße vom marabu
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#7

Re: booleanvariable immer false?

  Alt 3. Mai 2006, 19:15
hey danke


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
Nico Müller
  Mit Zitat antworten Zitat
marabu

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

Re: booleanvariable immer false?

  Alt 4. Mai 2006, 14:37
Hi Nico,

Zitat von Nicodius:
die idee entstand in rahmen eines wettbewerbes
glaube ich nicht - es handelt sich um ein Standardverfahren zum Korrigieren von Buchstabendrehern.

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
Angehängte Dateien
Dateityp: zip proofread_197.zip (2,6 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#9

Re: booleanvariable immer false?

  Alt 4. Mai 2006, 14:44
vielen herzlichen Dank

ich schaus mir gerade an - einfach super


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
Nico Müller
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:42 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