Autor Beitrag
barfuesser
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 324



BeitragVerfasst: Do 11.09.03 09:56 
Vielleicht solltet Ihr das ganze auch mal ordenlich einrücken, dann würdet Ihr nämlich feststellen, daß es ein paar end; zuviel gibt.

barfuesser
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Do 11.09.03 10:29 
@luckystrike4life:
Du musst nicht edit machen, bevor du append aufrufst. Du musst dir die hilfe zu edit und append mal anschauen.

Gruß
Ken

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
LuckyStrike4life Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 196

Win 2000, XP, SuSE Linux 8.2
D5 Enterp.
BeitragVerfasst: Do 11.09.03 10:48 
Danke! Vielen Dank!

Damit hats geklappt, endlich!

@JustusJonas

Du hast ja recht und vielleicht wirst du lachen wenn ich sage das ich Bücher darüber gelesen habe. Allerdings warns auch nur absolute Einsteiger Bücher, leider ist Delphi für mich ab Februar auch nicht mehr relevant, denn dann wechsel ich die Arbeitsstelle und zur Ausbildung gehört Delphi nicht mehr dazu. D.h. es wurde und wird mir auch nicht unterrichtet und es wird auch nicht geprüft. Ich muss jetzt nächsten Monat mit Java anfangen, da werde ich mich natürlich stärker mit befassen.

@CenBells
Verstanden, das "edit" ist nun weg.

Dieses Thread ist damit auch fast am Ende, denke ich. Es gibt nur noch eine Frage... .

Wie ist es zu realesieren das alle Zeilen abgearbeitet werden. Schon klar das ich dafür eine Schleife brauche ... allerdings ist mir nicht klar wie dies umzusetzen ist.

Musste ich nie mit Delphi oder Pascal machn, hatte das mal in C aber das ist schon ne Weile her und bringt mich an dieser Stelle wohl auch nicht weiter.

Vielleicht n bisschen Hilfe von euch ... wäre super.

_________________
... ich kann doch nichts ...
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Do 11.09.03 11:02 
LuckyStrike4life hat folgendes geschrieben:
@JustusJonas

Du hast ja recht und vielleicht wirst du lachen wenn ich sage das ich Bücher darüber gelesen habe. Allerdings warns auch nur absolute Einsteiger Bücher...
Wie ist es zu realesieren das alle Zeilen abgearbeitet werden. Schon klar das ich dafür eine Schleife brauche ... allerdings ist mir nicht klar wie dies umzusetzen ist.


HAllo,

also schleifen und variablen werden in jedem Einsteigerbuch behandelt :roll:
Und im Link von tino findest du auch schleifen, beispielsweise hier
www.marcocantu.com/E...erman/ch05statde.htm
ich würde dir eine for schleife empfehlen. Versuch das mal mit dem link, denn wenn du auch das nicht hinbekommst, bekommst du auch in Java dicke probleme, da schleifen so etwas wie essentielles programmierwerkzeug sind, die in allen programmiersprachen gleich funktionieren und auch fast gleich aussehen (hier ein for .. to ... do , da ein for(..;..;..){...}

Gruß
Ken

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
JustusJonas
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 222



BeitragVerfasst: Do 11.09.03 11:03 
Deine Vermutung mit der Schleife war schon richtig. Am besten nimmst du dafür eine For-Schleife. In dieser Schliefe kannst du angeben, dass er die Schleife von einem bis zum anderen Wert durchlaufen soll (fällt mir gerade ein wenig schwer das verständlich auszudrücken).

auf jeden Fall musst du mit 0 beginnen und das ganze so lange machen, bis du am Ende der StringList bist!

Greetz
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Do 11.09.03 11:50 
Die Schleife könnte so aussehen.
ausblenden Delphi-Quelltext
1:
2:
For Idx := 0 To SL.Count -1 Do
  { Hier der Code der n-mal ausgeführt werden soll }

Gruß
Tino
LuckyStrike4life Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 196

Win 2000, XP, SuSE Linux 8.2
D5 Enterp.
BeitragVerfasst: Fr 12.09.03 13:05 
Tino hat folgendes geschrieben:
Die Schleife könnte so aussehen.
ausblenden Delphi-Quelltext
1:
2:
For Idx := 0 To SL.Count -1 Do
  { Hier der Code der n-mal ausgeführt werden soll }

Gruß
Tino


Okay danke,

ich hab mir auch das durchgelesen, was zu Schleifen zu finden war - unter dem Link den CenBells mir ans Herz gelegt hat.

Nun sieht der Code so aus:
ausblenden 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:
Var
  SL: tStringList;
  gesuchterWert   : string;
  Idx : integer;

implementation

{$R *.DFM}

procedure TMainForm.Button1Click(Sender: TObject);
begin

  For Idx := 0 To SL.Count -1 Do
  SL := tStringList.Create;
  
  Try
    SL.LoadFromFile ('c:\test.txt');
     If Copy (Sl[0], 12) = '10' Then begin
     gesuchterWert := copy(sl[0], 193);
     TableMain.Append;
     TableMain.FieldByName('relev').AsString := gesuchterWert;
     TableMain.Post;
    end;
  Finally
    SL.Free;
  end;
end;


"Idx" aus
ausblenden Delphi-Quelltext
1:
2:
For Idx := 0 To SL.Count -1 Do
  { Hier der Code der n-mal ausgeführt werden soll }

hab ich als integer deklariert, ich denke das ist richtig.

Das ganze läßt sich auch compilieren, aber wenn ich dann auf den Button (der die Funktionen beinhaltet) drücke, bricht Delphi mit ner Fehlermeldung ab.
Versucht das Programm eventuelle immer wieder die erste Zeile erneut abzufragen?

_________________
... ich kann doch nichts ...
ErnestoChe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: Fr 12.09.03 13:39 
Hi,

nein, es wird bei jedem Schleifendurchlauf die StringListe erstellt. Das kann nicht gehen. Daher musst du diesen Code:

ausblenden Delphi-Quelltext
1:
SL := tStringList.Create;					


Vor der For-Schleife ausführen und den Schleifen-Code in ein begin ... end -Block packen, sonst gehört nur die erste Anweisung zum Schleifen Code.

Und da jedesmal der Idx um eins erhöht wird solltest du es auch einsetzen statt eine 0 im Index anzugeben, damit die Stringliste auch durchlaufen wird:

ausblenden Delphi-Quelltext
1:
If Copy (Sl[Idx], 12) = '10' Then begin					


MFG

- Ernesto -
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Fr 12.09.03 13:42 
LuckyStrike4life hat folgendes geschrieben:
hab ich als integer deklariert, ich denke das ist richtig.

Ja, das ist richtig. Allerdings würde ich die Variable Idx in der Procedure definieren und nicht als globale Variable da sie ja auch nur in der Procedure benutzt wird.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TMainForm.Button1Click(Sender: TObject); 
Var
  Idx: Integer;
begin
{...}
end;

Gruß
Tino
LuckyStrike4life Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 196

Win 2000, XP, SuSE Linux 8.2
D5 Enterp.
BeitragVerfasst: Fr 12.09.03 15:22 
Okay,
danke euch.

Nun sieht der Code so aus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
  SL := tStringList.Create;

  Try
    SL.LoadFromFile ('c:\test.txt');
    For Idx := 0 To SL.Count -1 Do
    begin

     If Copy (Sl[0], 12) = '10' Then begin
     gesuchterWert := copy(sl[0], 193);
     TableMain.Append;
     TableMain.FieldByName('relev').AsString := gesuchterWert;
     TableMain.Post;
     end;

    end;
  Finally
    SL.Free;
  end;


Jetzt läßt er sich compilieren und auch den Button kann man drücken. Allerdings wird dann (vermutlich) 14 mal die erste Zeile abgearbeitet. D.h. es landet 14 mal der Wert aus der 1. Zeile in der Datenbank. Obwohl ich mir mit dem 14 mal nicht so sicher bin.

Hab ich da noch ein Fehler eingebaut, oder etwas vergessen?

_________________
... ich kann doch nichts ...
cbs
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207
Erhaltene Danke: 1



BeitragVerfasst: Fr 12.09.03 15:30 
huhu

jo gug dir nochma an was ErnestoChe geschrieben hat

ErnestoChe hat folgendes geschrieben:
Und da jedesmal der Idx um eins erhöht wird solltest du es auch einsetzen statt eine 0 im Index anzugeben, damit die Stringliste auch durchlaufen wird:

ausblenden Delphi-Quelltext
1:
If Copy (Sl[Idx], 12) = '10' Then begin					


Zuletzt bearbeitet von cbs am Fr 12.09.03 15:31, insgesamt 1-mal bearbeitet
StefanH
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1144

Win XP
D5 Standard, D7 Pers, D2005 Pers
BeitragVerfasst: Fr 12.09.03 15:31 
Na klar!
wenn du 14 mal in der ersten Zeile guckst:

If Copy (Sl[0], 1, 2) = '10'

Da muss dein Schleifenzähler rein!!

Stefan
//Edit: zu langsam :(

_________________
"Als es noch keine Computer gab, war das Programmieren noch relativ einfach."(Edsger W. Dijkstra)
"Ich bin nicht von Sinnen, sondern ich rede wahre und vernünftige Worte." (Paulus)
LuckyStrike4life Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 196

Win 2000, XP, SuSE Linux 8.2
D5 Enterp.
BeitragVerfasst: Fr 12.09.03 16:22 
Stimmt,

hatte ich vergessen. Hatte ich aber auch schon nachgeholt. Brachte leider nicht viel, hm... .

Noch n Fehler drin?

_________________
... ich kann doch nichts ...
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Fr 12.09.03 17:56 
hallo,

hast du auch bei der zuweisung von gesuchter wert den schleifenzähler reingemacht?

ausblenden Delphi-Quelltext
1:
gesuchterWert := copy(sl[idx], 193);					


Gruß
Ken

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
LuckyStrike4life Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 196

Win 2000, XP, SuSE Linux 8.2
D5 Enterp.
BeitragVerfasst: Mo 22.09.03 09:47 
CenBells hat folgendes geschrieben:
hallo,

hast du auch bei der zuweisung von gesuchter wert den schleifenzähler reingemacht?

ausblenden Delphi-Quelltext
1:
gesuchterWert := copy(sl[idx], 193);					


Gruß
Ken


Hey,

schönen Dank - daran hats gelegen. Endlich gehts so wie es soll!

Nochmals Danke!! an alle die mir geholfen haben - ihr werdet sicher noch öfters die Chance dazu haben :) .

_________________
... ich kann doch nichts ...
LuckyStrike4life Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 196

Win 2000, XP, SuSE Linux 8.2
D5 Enterp.
BeitragVerfasst: Mo 22.09.03 09:54 
Um es schnell komplett zu machen - für Leute die n ähnliches Problem haben, hier der Code:
ausblenden 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:
procedure TMainForm.Button1Click(Sender: TObject);
begin

  
  SL := tStringList.Create;

  Try
    SL.LoadFromFile ('c:\file.txt');
    For Idx := 0 To SL.Count -1 Do
    begin

     If Copy (Sl[Idx], 12) = '10' Then begin
     gesuchterWert := copy(sl[idx], 193);
     TableMain.Append;
     TableMain.FieldByName('relev').AsString := gesuchterWert;
     TableMain.Post;
     end;

    end;
  Finally
    SL.Free;
  end;
end;

_________________
... ich kann doch nichts ...