AGB  ·  Datenschutz  ·  Impressum  







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

Fehlersuche

Ein Thema von gangs-taas · begonnen am 7. Apr 2009 · letzter Beitrag vom 9. Apr 2009
Antwort Antwort
Seite 6 von 7   « Erste     456 7      
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#51

Re: Fehlersuche

  Alt 9. Apr 2009, 09:03
Hallo gangs-taas,

ich wette es gibt mehr als ein Dutzend Leute hier, die wissen wo es klemmt.
hast Du einmal selbst versucht, heraus zu bekommen, was Dein Code macht?

Vielleicht solltest Du erst einmal versuchen Deinen Code sinnvoll zu formatieren, dann fällt Dir vielleicht das eine oder andere auf.

Und die Vergabe von sinnvollen Namen für Variablen hilft da ungemein weiter. Wenn Du eine Integer-Variable als Index einsetzt, dann wäre ein Verweis darauf im Namen ganz gut, weil Du dann innerhalb Deines Codes ganz gut nachvollziehen kannst was Du erreichen willst.

Vielleicht könntest Du mir erklären was Du mit dem Konstrukt
Delphi-Quellcode:
repeat
begin
  sTemp1:= Copy(String2, 1, y);
  .......
End;
until (schalter = 1) ;
bezweckst?

Ich versteh das nicht.


Ach ja was macht inc(y) ?

Gruß
K-H
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#52

Re: Fehlersuche

  Alt 9. Apr 2009, 09:21
inc steht für increment, was zu Deutsch erhöhen heißt und inkrementiert die Variable y um jeweils 1 bei jedem Aufruf. Ist ein dependant zu dem in C verwendeten y++.
Edit:
gleiche Syntax wäre y := y+1;
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#53

Re: Fehlersuche

  Alt 9. Apr 2009, 09:44
okay ich erkläre am code okay ?

also zu aller est, es ist ein Entschlüsselungs programm wobei jedem Buchstaben im Verschlüsselten Zustand 'y' Zalhen zu geordnet sind.

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
String2 : string; // der Text den ich Endschöüsseln möchte
y : integer; // die Anzahl der Zahlen, die später einen Bustaben bilden
Schalter : integer;
sTemp1 : string; // die ersten 'y' Zahlen vom ganzen Textfeld
sTemp : integer ; // benötigt für die If abfrage
Va,Vb,Vc : integer; // Variablen, die beinhalten, welche Zahlenkombination welchem Bustaben entspricht
begin
// Variablen Deklarieren //
String2 := Copy(Edit2.Text,1, Length(Edit2.Text)); // Erstmal den ganzen 'verschlüsselten' Text kopieren
y:= StrToInt(Copy(Edit1.Text,1,1)); // die Anzahl der Zahlen, die einen Bustaben bilden, ist in dem Edit1 Feld die erst Zahl
Schalter := 0; // gebraucht für die repeat schleife
Edit3.Text := ''; // das ausgeabe Textfeld leeren
Va := 1234; // \
Vb := 5678; // Welche Zahlenkombi entspricht 'a' , 'b' , 'c' erstmal zu testzwecken fest deffiniert später dann halt als richtige Variablen...
vc := 9101; // /
// String stückeln//
repeat
begin
  sTemp1:= Copy(String2, 1, y); // Die ersten 'y' Zeichen von dem 'verschlüsselten Text' Abtrennen
  sTemp := StrToInt(sTemp1); // musste sein weil er sonst bei der if abfrage gesponnen hat
     If (sTemp = Va) Then (Edit3.Text := Edit3.Text + 'a'); // prüfen ob die ersten 'y' Zahlen einem Bustaben entsprechen
     If (sTemp = Vb) Then (Edit3.Text := Edit3.Text + 'b');
     If (sTemp = Vc) Then (Edit3.Text := Edit3.Text + 'c');
  inc(y) ; // für den nachfolgenden Schritt gebraucht
  String2 := Copy(Edit2.Text,y, Length(Edit2.Text)); // kopiere vom Vollständingen verschlüsselten Text nur die Zeichen von einem Zeichen NACH 'y' (dafür hier auch der voreherige schritt) bis zum ende

If (y >= (Length(Edit2.Text))) Then // Wenn y größer oder gleich ist wie der ganze verschlüsselte text, soll die repeat-schleife aufhören
Schalter := 1 ;
End;
until (schalter = 1) ;
If (Schalter = 1) Then
ShowMessage('Fertig');
end;
  Mit Zitat antworten Zitat
gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#54

Re: Fehlersuche

  Alt 9. Apr 2009, 09:54
hehe es ist jetzt noch unübersichtlicher aber ich weiß nicht wie ich das ändern kann...
  Mit Zitat antworten Zitat
ToFaceTeKilla

Registriert seit: 17. Mai 2006
Ort: Leipzig
283 Beiträge
 
Delphi XE2 Professional
 
#55

Re: Fehlersuche

  Alt 9. Apr 2009, 10:12
1.Also was mir so spontan mal auffällt ist, dass die Inkrementierung von Y nicht ganz zweckmäßig ist.
Soll heißen:
Deine verschlüsselten Buchstaben bestehen aus einer Zahl der Länge Y. Im ersten Durchlauf stimmt das auch noch.
Dann wird aber Y um eins erhöht, wodurch er im zweiten Durchlauf Y+1 Zahlen einliest und versucht diese zu erkennen. So wird das nix.

2. sTemp1:= Copy(String2, 1, y); Stell dir vor, deine Schleife befindet sich im 2. (3.,4.,...) Durchlauf. Fällt dir was auf?
Billy Gerwitz
"Bei der Softwareentwicklung suchen wir nicht den richtigen Weg, sondern den am wenigsten falschen." - frei nach V. Hillmann
  Mit Zitat antworten Zitat
gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#56

Re: Fehlersuche

  Alt 9. Apr 2009, 14:26
okay
stimmt.
hab das nun so umgeändert. nun funktioniert das, dass ich hitnher her z.b. abc angezeigt bekomme nur kriegt ich nun - wieder- die fehlermeldung '' ist kein gültiger integer-wert.
durch breakpoints weiß ich dass er in der zeile ist, die ich auch verändert habe.. ich weiß nur nicht wieso ...
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
String2 : string;
y : integer;
Schalter : integer;
sTemp1 : string;
sTemp : integer ;
x: integer; // später stat 'y'
begin
// Variablen Deklarieren //
String2 := Copy(Edit2.Text,1, Length(Edit2.Text));
y:= StrToInt(Copy(Edit1.Text,1,1));
Schalter := 0;
Edit3.Text := '';
Va := 1234;
Vb := 5678;
vc := 9101;
x := y ; // hier ist mein fehler drin ... wobei 'y' ja eigendlich integer ist und x dann ja auch sein müsste oder ?
// String stückeln//
repeat
begin
  sTemp1:= Copy(String2, 1, y);
  sTemp := StrToInt(sTemp1);
     If (sTemp = Va) Then (Edit3.Text := Edit3.Text + 'a');
     If (sTemp = Vb) Then (Edit3.Text := Edit3.Text + 'b');
     If (sTemp = Vc) Then (Edit3.Text := Edit3.Text + 'c');
  inc(x) ;
  String2 := Copy(Edit2.Text,x, Length(Edit2.Text));

If (y >= (Length(Edit2.Text))) Then
Schalter := 1 ;
End;
until (schalter = 1) ;
If (Schalter = 1) Then
ShowMessage('Fertig');
end;
  Mit Zitat antworten Zitat
gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#57

Re: Fehlersuche

  Alt 9. Apr 2009, 16:32
wisst ihr woran das liegen könnte ?
  Mit Zitat antworten Zitat
Panthrax

Registriert seit: 18. Feb 2005
286 Beiträge
 
Delphi 2010 Enterprise
 
#58

Re: Fehlersuche

  Alt 9. Apr 2009, 16:41
Zitat von p80286:
(...)

Ich wette, es gibt mehr als ein Dutzend Leute hier, die wissen wo es klemmt.
Hast Du einmal selbst versucht, herauszubekommen, was Dein Code macht?

Vielleicht solltest Du erst einmal versuchen Deinen Code sinnvoll zu formatieren, dann fällt Dir vielleicht das Eine oder Andere auf.

Und die Vergabe von sinnvollen Namen für Variablen hilft da ungemein weiter. Wenn Du eine Integer-Variable als Index einsetzt, dann wäre ein Verweis darauf im Namen ganz gut, weil Du dann innerhalb Deines Codes ganz gut nachvollziehen kannst was Du erreichen willst.

(...)
"Es gibt keine schlimmere Lüge als die Wahrheit, die von denen, die sie hören, missverstanden wird."
  Mit Zitat antworten Zitat
gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#59

Re: Fehlersuche

  Alt 9. Apr 2009, 16:51
oh man ich weiß nicht wie ich den nachvollziehbarer gestallten soll.
und was er machen soll hab ich doch schon erklärt ?!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#60

Re: Fehlersuche

  Alt 9. Apr 2009, 16:53
Mach doch mal einen Schreibtischtest, dann siehst Du, wo es hakt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 7   « Erste     456 7      


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 10:07 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