myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

[Delphi] Fehlersuche

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 21.02.12, 18:59   #1
Eldorado93
Anfänger
 
Registriert seit: Feb 2012
Beiträge: 18
Bedankt: 2
Eldorado93 ist noch neu hier! | 0 Respekt Punkte
Standard [Delphi] Fehlersuche

Hi,
Ich hab hier irgendwo einen Fehler im Code, finde ihn aber iwie nicht.
Link[n] wird einfach nicht mit einem String gefüllt.
Die Gesuchten wörter kommen eindeutig immer vor.

Code:
var RString:String;
var link:array [1..10] of String;
var i,k,m,n:integer;
begin
  n:=0;                                                 
  for i:=1 to length(RString) do
   begin
    if (RString[i]='d') and (RString[i+1]='l') and (RString[i+2]='i') and (RString[i+3]='n') and (RString[i+4]='k') and (RString[i+5]='s')  then begin
     inc(n);
     m:=1;
     link[n]:='';
     while (RString[i+m] <> 't') and (RString[i+m+1] <> 'i') and (RString[i+m+2] <> 't') and (RString[i+m+3] <> 'l') and (RString[i+m+4] <> 'e') and (RString[i+m+5] <> '=') do inc(m);
     for k:=i to m do link[n]:=link[n]+RString[i+k];
     ShowMessage(link[n]);
    end;
   end;
Viele Grüße
Eldorado
Eldorado93 ist offline   Mit Zitat antworten
Ungelesen 21.02.12, 19:16   #2
Zeodos
Mitglied
 
Registriert seit: May 2010
Beiträge: 427
Bedankt: 224
Zeodos ist noch neu hier! | 0 Respekt Punkte
Standard

hmm.. was steht denn in RString? Du erstellst RString ja neu, füllst die Variable aber nie mit Inhalt.. ?!
Zeodos ist offline   Mit Zitat antworten
Ungelesen 21.02.12, 19:26   #3
Eldorado93
Anfänger
 
Registriert seit: Feb 2012
Beiträge: 18
Bedankt: 2
Eldorado93 ist noch neu hier! | 0 Respekt Punkte
Standard

achja, jaa das hab ich hier raus gelassen, ja in RString steht das richtige drinn, also so das m und i nicht ins unendliche laufen
Eldorado93 ist offline   Mit Zitat antworten
Ungelesen 22.02.12, 10:02   #4
kalliknuddel
Anfänger
 
Registriert seit: Feb 2009
Ort: Berlin
Beiträge: 35
Bedankt: 18
kalliknuddel ist noch neu hier! | 0 Respekt Punkte
Standard tuuuuut

Also, dann erklärn wir dir deinen eigenen Code...
Also er springt in die erste Schleife rein und..
Code:
    if (RString[i]='d') and (RString[i+1]='l') and (RString[i+2]='i') and (RString[i+3]='n') and (RString[i+4]='k') and (RString[i+5]='s')  then begin
     inc(n);
     m:=1;
     link[n]:='';
..überprüft ob ab der Aktuellen Position der String 'dlinks' steht.
Wenn ja, dann
- Inkrementier n (ich nehm and das soll die Anzahl an funden und der momentane Index für link[] sein
(Da gibts das erste Problem: Das erste Element das du beschreibst ist link[1] und nicht link[0] )
- Setzt m = 1
- initialisiert link[n] mit ''
Soweit so gut, jetz wirds witzig

Code:
     while (RString[i+m] <> 't') and (RString[i+m+1] <> 'i') and (RString[i+m+2] <> 't') and (RString[i+m+3] <> 'l') and (RString[i+m+4] <> 'e') and (RString[i+m+5] <> '=') do inc(m);
Zur while-Schleife:
- du überprüfst den String ab i (die Position ab der im String 'dlink' steht!) + m (beim ersten mal 1) + constante.. ich nehme an du willst solang durchlaufen wie nicht 'title=' an der Position im String steht aber das geht schief.. was meinste passiert bei 'aitle'? (dummes Beispiel aber ich hoffe du weißt worauf ich hinaus will)

Und zu guter letzt der eigentliche Hammer:
Code:
     for k:=i to m do link[n]:=link[n]+RString[i+k];
     ShowMessage(link[n]);
Also k=i und soll dann solange hochgezählt werden wie k<m..
Jetz überleg nochma scharf was m eigentlich war...


Zu guter letzt noch eine Hilfe zum suchen nach Substring: [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]

Sodale, ne Lösung bekommste nicht, dafür sollteste jetzt genug wissen um die Fehler seblst auszumerzen^^ (wenn du weiter Hilfe brauchst schreib ne PM.. :P)
In diesem Sinne, Viel Erfolg beim Ausbesern^^
kalliknuddel ist offline   Mit Zitat antworten
Ungelesen 22.02.12, 16:38   #5
Eldorado93
Anfänger
 
Registriert seit: Feb 2012
Beiträge: 18
Bedankt: 2
Eldorado93 ist noch neu hier! | 0 Respekt Punkte
Standard

ich bin so blind -.-
Aber viele herzlichen dank, ich guck da schon seid ca 2 tagen drauf und fand den fehler net -.-
Eldorado93 ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:46 Uhr.


Sitemap

().