AGB  ·  Datenschutz  ·  Impressum  







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

"Durchlauf"-Algorhytmus gesucht

Ein Thema von MisterNiceGuy · begonnen am 1. Okt 2005 · letzter Beitrag vom 1. Okt 2005
Antwort Antwort
Benutzerbild von MisterNiceGuy
MisterNiceGuy

Registriert seit: 1. Jul 2003
Ort: Mannheim
919 Beiträge
 
Delphi 7 Personal
 
#1

"Durchlauf"-Algorhytmus gesucht

  Alt 1. Okt 2005, 14:24
Hi ich versuche gerade einen Algorhytmus zu schreiben, der folgendes tun soll:

-> Beginnen mit den ersten Buchstaben aus einem Memo.
-> Falls diser Buchstabe nicht der letzte aus dem Memo ist, den nächsten buchstaben aus dem Memo nehmen.
-> Falls es schon der letzte ist, einen neuen Buchstaben in den String einfügen.
-> Solange, bis ein String gefunden wurde.

Delphi-Quellcode:
    while panel1.Caption <> 'aado
      begin
        pw := panel1.Caption;
        for i:=length(pw) downto 1 do
          begin
            if pw[i] <> memo1.Text[length(memo1.Text)] then
              pw[i] := next_char(pw[i])
            else if i = 1 then
              pw := pw+memo1.Text[1];
          end;
        panel1.Caption := pw;
      end;
Das ist der Code, soweit ich den schon geschrieben habe. Aber es funktioniert irgendwie nicht so recht.
Jetzt meine Frage an euch, hat einer einen solchen Algorhytmus oder findet einen Fehler in dem Code?

Hoffe ihr könnt mir helfen!!
Jonas
Wenn mich jemand sucht, ich bin im Kühlschrank!

Informationen über das Duale Studium
www.jofre.de
  Mit Zitat antworten Zitat
Benutzerbild von Grumble
Grumble

Registriert seit: 19. Mär 2003
Ort: Dresden
203 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: "Durchlauf"-Algorhytmus gesucht

  Alt 1. Okt 2005, 15:11
sorichtig habe ich nicht verstanden was du bezweckst aber ich hab das mal mit kommentaren interpretiert.... ichdenke mal das mit dem next char was nich so passt, aber die funktion kenn ich nicht, ich sehe auch nicht wie das naechste zeichen aus dem memo genommen wird, sondern nur das naechste zeichen aus pw , das ja die caption des panels erhaelt

Delphi-Quellcode:
while panel1.Caption <> 'aa'  do // solange panel caption nicht aa ist
      begin
        pw := panel1.Caption; // pw = panel caption
        for i:=length(pw) downto 1 do // fuer i = laenge pw runter bis 1
          begin
            if pw[i] <> memo1.Text[length(memo1.Text)] then // wenn zeichen aus pw an stelle i nicht letztes zeichen aus memo text dann
              pw[i] := next_char(pw[i]) // zeichen aus pw an stelle i = next_char??? funktion kenn ich nicht i = downto 1 haut das hin??? reicht da nicht einfach ein continue?
            else if i = 1 then // wenn i = eins
              pw := pw+memo1.Text[1]; // pw = pw und erstes zeichen aus memo
          end;
        panel1.Caption := pw; // panel caption = pw
end;
gruss
Grumble

... moege der code mit dir sein ...
  Mit Zitat antworten Zitat
1. Okt 2005, 15:32
Dieses Thema wurde von "Christian Seehase" von "Windows API / MS.NET Framework API" nach "Sonstige Fragen zu Delphi" verschoben.
Hat so nichts mit der Windows-API zu tun.
Benutzerbild von MisterNiceGuy
MisterNiceGuy

Registriert seit: 1. Jul 2003
Ort: Mannheim
919 Beiträge
 
Delphi 7 Personal
 
#4

Re: "Durchlauf"-Algorhytmus gesucht

  Alt 1. Okt 2005, 16:22
Ja also schwer zu erklären Hier ist auf jedenfall die Lösung, das passende Programm gibts später nachgeliefert.

Hier erstmal der Algorhytmus:
Delphi-Quellcode:
var mompos:array[1..20] of integer;
    laenge:integer;
    i,j,k:integer;
    pw:string;
begin
  laenge := 1;
  mompos[laenge] := 1;
  statusbar1.Panels[1].Text := 'Suche...';
  start := GetTickCount;
  panel1.Caption := memo1.Text[1];
    while panel1.Caption <> 'aaaado
      begin
        pw := panel1.Caption;
        memo2.Lines.Add(pw);
        for i:=length(pw) downto 1 do
          begin
            if pw[i] <> memo1.Text[length(memo1.Text)] then
              begin
                pw[i] := next_char(pw[i]);
                if length(pw) > i then
                  for k:=i+1 to length(pw) do
                  pw[k] := memo1.text[1];
                break;
              end
            else if i = 1 then
              begin
                if length(pw) > 0 then
                  for j:= length(pw) downto 1 do
                    pw[length(pw)-j+1] := memo1.text[1];
                pw := pw+memo1.Text[1];
                break;
              end;
          end;
        delay(10);
        panel1.Caption := pw;
      end;
Jonas
Wenn mich jemand sucht, ich bin im Kühlschrank!

Informationen über das Duale Studium
www.jofre.de
  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 01:21 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