Autor Beitrag
Dr.Miezo
Hält's aus hier
Beiträge: 14

win server 2003, win xp, win 7
Delphi 7 Prof.
BeitragVerfasst: Do 08.11.12 12:24 
Hallo!

Ich verwende erst seit kurzem Delphi und bin dadurch noch kein Genie was das Arbeiten damit angeht.
Mein Problem: Ich habe eine ListBox in der Zahlenkombinationen aufgelistet werden. Nun soll immer die erste Kombination genommen werden und die ListBox nach der nächsten Kombination durchsucht werden, welche dieser nicht gleich usw. (also nur kombinationen bei denen die zahlen immer verschieden sind) und in einer seperaten ListBox angezeigt werden.

Hier ein kleines Beispiel:
(es sind immer 6-stellige Zahlen und aufgeteilt in gerade und ungerade Zahlen(a= gerade, b= ungerade) und jede dieser 6 Stellen ist variabel)

A.B.A.B.A.B
1-> 2.1.4.3.6.5 (diese nehmen)
2-> 2.1.4.3.6.7
3-> 2.1.4.3.6.9
usw.
z.b. 89-> 4.3.6.5.8.7 (diese auch nehmen, da sie mit keiner Position mit der ersten übereinstimmt)
(die 3. Kombination darf dann werder der 1. noch der 2. gleichen)

Dies fortführen und die ListBox durchsuchen, bis keine Kombination mehr übrig ist.

Da meine Delphi Hilfe auf Deutsch und somit unverständlich und zum Teil unvollständig ist bin langsam echt am verzweifeln...

Hat ijmd eine Idee, Tips, Ratschläge, oder gar einen Lösungsvorschlag?

thx schonmal im voraus!!!
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Do 08.11.12 13:13 
Hallo und Willkommen in der EE!

Ich hab Dein Problem nicht so wirklich verstanden. Geht es Dir nur draum, wie Du an die einzelnen Einträge der Listbox heran kommst? Das ginge z.B. so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
var
  Item : String;
  i : Integer;
begin

  for I := 0 to ListBox1.Items.Count - 1 do
  begin
    Item := Listbox1.Items.Strings[i];
    ShowMessage(Item);
  end;

end;

Mit Item kannst Du dann Deine Vergleiche anstellen.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Dr.Miezo Threadstarter
Hält's aus hier
Beiträge: 14

win server 2003, win xp, win 7
Delphi 7 Prof.
BeitragVerfasst: Do 08.11.12 13:23 
Vielen Dank ! :)

Nicht ganz....ich brauch eine function die mir eben die einzelnen Kombinationen herauspickt die sich eben in jeder zahl unterscheiden und da jeder durchlauf unterschiedlich ist (also jedes mal wenn die ListBox gefüllt wird) stehen manchmal mehrere tausend Kombinationen in der Box und manchmal nur wenige hunderte oder nur eine Hand voll....und damit man eben nicht mühsam die Liste durchgehen muss brauch ich etwas dass die Liste der reihe nach von Oben beginnend durchgeht und aufhört wenn es Unten angekommen ist. Die erste Kombination wird genommen und von dieser ausgehen sollen dann die anderen gesucht werden und damit die 2. ListBox gefüllt werden. (Ich hatte da an eine Art Schleife gedacht aber wie ist mir ein Rätsel und alles was ich versucht habe endete im Absturz)
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Do 08.11.12 13:24 
Also wirklich verstanden hab ich es immer noch nicht.
Aber zeig am besten mal Deinen (fehlgeschlagenen) Versuch.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Dr.Miezo Threadstarter
Hält's aus hier
Beiträge: 14

win server 2003, win xp, win 7
Delphi 7 Prof.
BeitragVerfasst: Do 08.11.12 13:27 
Oha^^

Diesen hab ich wieder entfernt (war ein totales Chaos) aber ich kann dir mal zeigen wie die Zahlenkombinationen erstellt werden.....vllt verstehst du dann wie ich das meine :D

Moderiert von user profile iconNarses: Beiträge zusammengefasst

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
procedure TForm1.Button1Click(Sender: TObject);
var
    P1: Integer;
    P2: Integer;
    P3: Integer;
    P4: Integer;
    P5: Integer;
    P6: Integer;
    Zaehler: Integer;
    Zaehler2: Integer;
    MaxWert1: Integer;
    MaxWert2: Integer;
    MaxWert3: Integer;
    MaxWert4: Integer;
    MaxWert5: Integer;
    MaxWert6: Integer;
    SinglePos: String;
    AsciiWert1: Integer;
    AsciiWert2: Integer;
    AsciiWert3: Integer;
    AsciiWert4: Integer;
    AsciiWert5: Integer;
    AsciiWert6: Integer;
begin
   // Codegenerator;
   Screen.Cursor := crhourglass;
   ListBox1.Clear;
   Label11.Caption := '';
   Label12.Caption := '';
   Zaehler := 0;
   Zaehler2 := 0;
   P1 := -2;
   P2 := -2;
   P3 := -2;
   P4 := -2;
   P5 := -2;
   P6 := -2;
   SinglePos := Copy(Variationsbereich,1,1);
   AsciiWert1 := Ord(SinglePos[1]);
   if ((AsciiWert1 >= 48 ) and (AsciiWert1 <= 57)) then
   begin
     P1 := StrToInt(SinglePos);
     MaxWert1 := P1 + 1 + StrToInt(Sprung);
   end;
   if SinglePos = 'A' then
     begin
       if StrToInt(UntererWert) = ConvertToGerade(StrToInt(UntererWert)) then
         P1 := StrToInt(UntererWert) - StrToInt(Sprung)
       else
         P1 := StrToInt(UntererWert) + 1 - StrToInt(Sprung);
     MaxWert1 := ConvertToGerade(StrToInt(ObererWert));
     end;
      if SinglePos = 'B' then
        begin
          if StrToInt(UntererWert) = ConvertToUngerade(StrToInt(UntererWert)) then
            P1 := StrToInt(UntererWert) - StrToInt(Sprung)
          else
            P1 := StrToInt(UntererWert) + 1 - StrToInt(Sprung);
        MaxWert1 := ConvertToUngerade(StrToInt(ObererWert));
        end;
   while P1 <= MaxWert1 - StrToInt(Sprung) do
     begin
       if ((SinglePos = 'A'or (SinglePos = 'B')) then
         P1 := P1 + StrToInt(Sprung)
       else
         MaxWert1 := MaxWert1 - 1;
         SinglePos := Copy(Variationsbereich,2,1);
         AsciiWert2 := Ord(SinglePos[1]);
       if ((AsciiWert2 >= 48 ) and (AsciiWert2 <= 57)) then
       begin
         P2 := StrToInt(SinglePos);
         MaxWert2 := P2 + 1;
       end;
       if SinglePos = 'A' then
         begin
           if StrToInt(UntererWert) = ConvertToGerade(StrToInt(UntererWert)) then
             P2 := StrToInt(UntererWert) - StrToInt(Sprung)
           else
             P2 := StrToInt(UntererWert) + 1 - StrToInt(Sprung);
         MaxWert2 := ConvertToGerade(StrToInt(ObererWert));
         end;
       if SinglePos = 'B' then
         begin
           if StrToInt(UntererWert) = ConvertToUngerade(StrToInt(UntererWert)) then
             P2 := StrToInt(UntererWert)-StrToInt(Sprung)
           else
             P2 := StrToInt(UntererWert) + 1 - StrToInt(Sprung);
           MaxWert2 := ConvertToUngerade(StrToInt(ObererWert));
         end;
       while P2 <= MaxWert2 - StrToInt(Sprung) do
         begin
           if ((SinglePos = 'A'or (SinglePos = 'B')) then
             P2 := P2+StrToInt(Sprung)
           else
             MaxWert2 := MaxWert2 - 1;
             SinglePos := Copy(Variationsbereich,3,1);
             AsciiWert3 := Ord(SinglePos[1]);
           if ((AsciiWert3 >= 48 ) and (AsciiWert3 <= 57)) then
           begin
             P3 := StrToInt(SinglePos);
             MaxWert3 := P3 + 1;
           end;
           if SinglePos = 'A' then
             begin
               if StrToInt(UntererWert) = ConvertToGerade(StrToInt(UntererWert)) then
                 P3 := StrToInt(UntererWert) - StrToInt(Sprung)
               else
                 P3 := StrToInt(UntererWert) + 1 - StrToInt(Sprung);
               MaxWert3 := ConvertToGerade(StrToInt(ObererWert));
             end;
           if SinglePos = 'B' then
             begin
               if StrToInt(UntererWert) = ConvertToUngerade(StrToInt(UntererWert)) then
                 P3 := StrToInt(UntererWert) - StrToInt(Sprung)
               else
                 P3 := StrToInt(UntererWert) + 1 - StrToInt(Sprung);
               MaxWert3 := ConvertToUngerade(StrToInt(ObererWert));
             end;
           while P3 <= MaxWert3 - StrToInt(Sprung) do
             begin
               if ((SinglePos = 'A'or (SinglePos = 'B')) then
               P3 := P3 + StrToInt(Sprung)
               else
               MaxWert3 := MaxWert3 - 1;
               SinglePos := Copy(Variationsbereich,4,1);
               AsciiWert4 := Ord(SinglePos[1]);
               if ((AsciiWert4 >= 48 ) and (AsciiWert4 <= 57)) then
               begin
                 P4 := StrToInt(SinglePos);
                 MaxWert4 := P4 + 1;
               end;
               if SinglePos = 'A' then
                 begin
                   if StrToInt(UntererWert) = ConvertToGerade(StrToInt(UntererWert)) then
                     P4 := StrToInt(UntererWert) - StrToInt(Sprung)
                   else
                     P4 := StrToInt(UntererWert) + 1 - StrToInt(Sprung);
                  MaxWert4 := ConvertToGerade(StrToInt(ObererWert));
                 end;
               if SinglePos = 'B' then
                 begin
                   if StrToInt(UntererWert) = ConvertToUngerade(StrToInt(UntererWert)) then
                     P4 := StrToInt(UntererWert) - StrToInt(Sprung)
                   else
                     P4 := StrToInt(UntererWert) + 1 - StrToInt(Sprung);
                   MaxWert4 := ConvertToUngerade(StrToInt(ObererWert));
                 end;
               while P4 <= MaxWert4 - StrToInt(Sprung) do
                 begin
                   if ((SinglePos = 'A'or (SinglePos = 'B')) then
                   P4 := P4 + StrToInt(Sprung)
                   else
                   MaxWert4 := MaxWert4 - 1;
                   SinglePos := Copy(Variationsbereich,5,1);
                   AsciiWert5 := Ord(SinglePos[1]);
                   if ((AsciiWert5 >= 48 ) and (AsciiWert5 <= 57)) then
                   begin
                     P5 := StrToInt(SinglePos);
                     MaxWert5 := P5 + 1;
                   end;
                   if SinglePos = 'A' then
                     begin
                       if StrToInt(UntererWert) = ConvertToGerade(StrToInt(UntererWert)) then
                       P5 := StrToInt(UntererWert) - StrToInt(Sprung)
                     else
                       P5 := StrToInt(UntererWert) + 1  - StrToInt(Sprung);
                     MaxWert5 := ConvertToGerade(StrToInt(ObererWert));
                     end;
                   if SinglePos = 'B' then
                     begin
                       if StrToInt(UntererWert) = ConvertToUngerade(StrToInt(UntererWert)) then
                         P5 := StrToInt(UntererWert) - StrToInt(Sprung)
                       else
                         P5 := StrToInt(UntererWert) + 1 - StrToInt(Sprung);
                       MaxWert5 := ConvertToUngerade(StrToInt(ObererWert));
                     end;
                   while P5 <= MaxWert5 - StrToInt(Sprung) do
                     begin
                       if ((SinglePos = 'A'or (SinglePos = 'B')) then
                       P5 := P5 + StrToInt(Sprung)
                       else
                         MaxWert5 := MaxWert5 - 1;
                       SinglePos := Copy(Variationsbereich,6,1);
                       AsciiWert6 := Ord(SinglePos[1]);
                       if ((AsciiWert6 >= 48 ) and (AsciiWert6 <= 57)) then
                       begin
                         P6 := StrToInt(SinglePos);
                         MaxWert6 := P6 + 1;
                       end;
                       if SinglePos = 'A' then
                         begin
                           if StrToInt(UntererWert) = ConvertToGerade(StrToInt(UntererWert)) then
                           P6 := StrToInt(UntererWert) - StrToInt(Sprung)
                         else
                           P6 := StrToInt(UntererWert) + 1 - StrToInt(Sprung);
                         MaxWert6 := ConvertToGerade(StrToInt(ObererWert));
                         end;
                       if SinglePos = 'B' then
                         begin
                           if StrToInt(UntererWert) = ConvertToUngerade(StrToInt(UntererWert)) then
                             P6 := StrToInt(UntererWert) - StrToInt(Sprung)
                           else
                             P6 := StrToInt(UntererWert) + 1 - StrToInt(Sprung);
                           MaxWert6 := ConvertToUngerade(StrToInt(ObererWert));
                         end;
                       while P6 <= MaxWert6 - StrToInt(Sprung) do
                         begin
                           if ((SinglePos = 'A'or (SinglePos = 'B')) then
                           P6 := P6 + StrToInt(Sprung)
                           else
                           MaxWert6 := MaxWert6 - 1;
                           if TestKombination (IntToStr(P1)+IntToStr(P2)+IntToStr(P3)+IntToStr(P4)+IntToStr(P5)+IntToStr(P6)) then
                             begin
                               Zaehler := Zaehler + 1;
                               MyStringList.Add(IntToStr(P1) + IntToStr(P2) + IntToStr(P3) + IntToStr(P4) + IntToStr(P5) + IntToStr(P6));
                               ListBox1.AddItem(IntToStr(P1) + IntToStr(P2) + IntToStr(P3) + IntToStr(P4) + IntToStr(P5) + IntToStr(P6),Form1);
                               Label11.Caption := IntToStr(Zaehler);
                             end
                             else
                             begin
                               Zaehler2 := Zaehler2 + 1;
                               Label12.Caption := IntToStr(Zaehler2);
                             end;
                         end;
                     end;
                 end;
             end;
         end;
     end;
     
Screen.Cursor := crdefault;
Variationsbereich := Copy(Variationsbereich,1,6);
MyStringList.SaveToFile(Pfad + Variationsbereich + '.txt');
end;

so sieht das dann aus....hoffe du kannst dir iwie ein Bild davon machen :D
Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Do 08.11.12 13:40 
Ich glaub, wir müssen nochmal von vorne anfangen.
Was ich verstanden habe:
Du hast 2 Listboxen. Du möchtest nun einige Einträge aus der ersten Listbox in die zweite Listbox kopieren. Soweit richtig?
Was mir nun nicht klar ist, nach welcher Regel die Einträge kopiert werden sollten.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Dr.Miezo Threadstarter
Hält's aus hier
Beiträge: 14

win server 2003, win xp, win 7
Delphi 7 Prof.
BeitragVerfasst: Do 08.11.12 13:47 
ok^^

Also die eine ListBox ist gefüllt mit Zahlenkombinationen (immer 6-stellig und immer verschieden)
und man nimmt jetzt die erste kombination die in der ersten ListBox steht (z.B. 432121) die merkt man sich und kopiert sie in die 2. ListBox jetzt geht man in der ersten ListBox weiter und sucht nach der Nächsten Kombination bei der alle Zahlen verschieden sind (in diesem Fall: 656543) diese merkt man sich nun auch, schreibt sie in die 2. ListBox und geht in der ersten List Box weiter und sucht nach der nächsten Kombination die weder der 1. noch der 2. Kombination gleicht (es dürfen gleiche zahlen vorkommen aber es geht um den Platz den sie einnehmen so darf hier in dem beispiel keine 4 mehr am anfang stehen usw...) und das wird so lange gemacht bis man nichts mehr findet und unten angekommen ist (es gibt keinen zweiten durchlauf)


hoffe des is deutlicher (habs beim ersten mal auch nicht kapiert als ich das machen sollte) ;)
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Do 08.11.12 13:55 
Würdest Du nun in der ersten Listbox einen Eintrag mit 999599 finden, würdest Du den Eintrag NICHT übertragen, weil Du die 5 an der 4. Stelle schon mal hattest?

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Dr.Miezo Threadstarter
Hält's aus hier
Beiträge: 14

win server 2003, win xp, win 7
Delphi 7 Prof.
BeitragVerfasst: Do 08.11.12 13:57 
genau :)

nur Kombinationen an denen die Zahlen an anderen Stellen stehen als bei den Kombinationen zuvor und nichts darf sich gleichen
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Do 08.11.12 14:03 
Dazu würde ich mir als allererstes eine Hilfsfunktion zum Vergleich schreiben. Aus dem Kopf getippt:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
function StringsCompletelyDifferent(const s1, s2: string): Boolean;
var
  i: integer;
begin
  Assert(Length(s1) = Length(s2));
  Result := true;
  i := 1;
  while (i <= Length(s1)) and Result do
    begin
      if s1[i] = s2[i] then
        Result := false
      else
        inc(i);
    end;
end;
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Do 08.11.12 14:05 
Damit hätten wir die erste große Hürde überwunden - ich hab die Problemstellung verstanden :D
Ich denke da mal ein bisschen drüber nach.

Im Prinzip läuft es ja so (Pseudocode):
ausblenden Quelltext
1:
2:
3:
4:
5:
für jedes item in Listbox1
begin
  wenn SollItemEingefügtWerden(item) dann
    Item in Listbox2 einfügen
end


Damit haben wir das Problem schon mal etwas zerlegt. Wir brauchen jetzt nur noch eine Funktion, die prüft, ob das Item eingefügt werden muss.

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
Funktion SollItemEingefügtWerden(AItem : String) : Boolean;
var
  i, j : integer;
  gefunden : boolean;
begin

  gefunden := false;
  i := 0;

  wiederhole solange (not gefunden) and (i <= Listbox2.Items.Count - 1)
  begin
    for j = 1 to 6
    begin
      wenn AItem[j] = Listbox2.Items.Strings[i][j]
        gefunden := true;

    end
    i := i + 1;
  end

  result := not gefunden;

end;

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Dr.Miezo Threadstarter
Hält's aus hier
Beiträge: 14

win server 2003, win xp, win 7
Delphi 7 Prof.
BeitragVerfasst: Do 08.11.12 14:11 
Gut..immerhin etwas :D

und ja genau so sollte des dann aussehen^^

wäre gut das so hinzubekommen :)




( Danke an : WasWeißDennIch )
Dr.Miezo Threadstarter
Hält's aus hier
Beiträge: 14

win server 2003, win xp, win 7
Delphi 7 Prof.
BeitragVerfasst: Do 08.11.12 14:59 
kann ich das auch in nicht-Pseudocode haben? :D
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Do 08.11.12 15:01 
user profile iconDr.Miezo hat folgendes geschrieben Zum zitierten Posting springen:
kann ich das auch in nicht-Pseudocode haben? :D

Nö, sorry. Der Pseudocode ist doch schon 90% der Lösung. Den Rest darfste schon selbst machen. Etwas Eigeninitiative musst Du schon zeigen. Wenn Du konkrete Fragen zur Syntax hast, kannst Du die ruhig stellen. Aber ich werde Dir nicht Deine Arbeit machen.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Dr.Miezo Threadstarter
Hält's aus hier
Beiträge: 14

win server 2003, win xp, win 7
Delphi 7 Prof.
BeitragVerfasst: Do 08.11.12 15:07 
wiederhole solange....hab da while do genommen

und wie is des mit dem not gefunden gemeint? sollte des true sein?
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Do 08.11.12 15:10 
Mit dem While liegst Du schon ganz richtig.
NOT ist die Negation.
Man könnte schreiben "wiederhole solange (gefunden = false)...". Das bewirkt in diesem Fall das Selbe. Aaaaaber, man sollte nicht auf "False" prüfen, sondern lieber den Konstrukt mit NOT nehmen. Auf die Gründe möchte ich nicht genauer eingehen, da ich glaub, es würde Dich im Moment noch überfordern (ist nicht böse gemeint).

Merk Dir erstmal einfach "if NOT blabla" ist die richtige Alternative zu "if blabla = false"

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Dr.Miezo Threadstarter
Hält's aus hier
Beiträge: 14

win server 2003, win xp, win 7
Delphi 7 Prof.
BeitragVerfasst: Do 08.11.12 15:20 
kein problem

der will bei mir des ListBox ned akzeptieren....
und an welcher Stelle soll ich dann die gefundenen Kombinationen in die ListBox schreiben?
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Do 08.11.12 15:22 
Zeig mal bitte die Codestelle, die nicht funktioniert und welches Fehlermeldung es gibt.
Den Code bitte in Delphi-Tags verpacken, dann wird es im Forum richtig dargestellt.
Also so:
ausblenden Quelltext
1:
<span class="inlineSyntax"><span class="codecomment">{PROTECTTAG9e0c1a0ed0a6d0fc1035e4fb303bd8d0}</span></span>					

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Dr.Miezo Threadstarter
Hält's aus hier
Beiträge: 14

win server 2003, win xp, win 7
Delphi 7 Prof.
BeitragVerfasst: Do 08.11.12 15:28 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
 while (not gefunden) and (i <= ListBox1.Items.Count - 1do
(undeclared identifier 'ListBox1')
for p = 1 to 6;
(for loop control variable must  be simple local variable)
begin
(expression expected but begin found)
if AItem[p] = ListBox1.Items.Strings[i][p] then
(then expected but identifier items found)
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Do 08.11.12 15:31 
user profile iconDr.Miezo hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
while (not gefunden) and (i <= ListBox1.Items.Count - 1do
  for p = 1 to 6;
(for loop control variable must  be simple local variable)
begin
(expression expected but begin found)
if AItem[p] = ListBox1.Items.Strings[i][p] then
(then expected but identifier items found)


- Deine Listbox sollte schon "Listbox1" heißen. Oder Du musst in den Code halt den entsprechenden Namen der Listbox schreiben.
- Die Variable "p" muss in der Procedure deklariert sein, wo Du sie verwendest.
- bei der FOR-Schleife gehört nach der 6 ein do (ohne ;) hin

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)