Autor |
Beitrag |
barfuesser
      
Beiträge: 324
|
Verfasst: 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
      
Beiträge: 1547
Win 7
Delphi XE5 Pro
|
Verfasst: 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 
      
Beiträge: 196
Win 2000, XP, SuSE Linux 8.2
D5 Enterp.
|
Verfasst: 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
      
Beiträge: 1547
Win 7
Delphi XE5 Pro
|
Verfasst: 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
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
      
Beiträge: 222
|
Verfasst: 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
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Do 11.09.03 11:50
Die Schleife könnte so aussehen.
Delphi-Quelltext 1: 2:
| For Idx := 0 To SL.Count -1 Do |
Gruß
Tino
|
|
LuckyStrike4life 
      
Beiträge: 196
Win 2000, XP, SuSE Linux 8.2
D5 Enterp.
|
Verfasst: Fr 12.09.03 13:05
Tino hat folgendes geschrieben: | Die Schleife könnte so aussehen.
Delphi-Quelltext 1: 2:
| For Idx := 0 To SL.Count -1 Do |
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:
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], 1, 2) = '10' Then begin gesuchterWert := copy(sl[0], 19, 3); TableMain.Append; TableMain.FieldByName('relev').AsString := gesuchterWert; TableMain.Post; end; Finally SL.Free; end; end; |
"Idx" aus
Delphi-Quelltext 1: 2:
| For Idx := 0 To SL.Count -1 Do |
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
      
Beiträge: 528
Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
|
Verfasst: 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:
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:
Delphi-Quelltext 1:
| If Copy (Sl[Idx], 1, 2) = '10' Then begin |
MFG
- Ernesto -
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: 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.
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| procedure TMainForm.Button1Click(Sender: TObject); Var Idx: Integer; begin
end; |
Gruß
Tino
|
|
LuckyStrike4life 
      
Beiträge: 196
Win 2000, XP, SuSE Linux 8.2
D5 Enterp.
|
Verfasst: Fr 12.09.03 15:22
Okay,
danke euch.
Nun sieht der Code so aus:
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], 1, 2) = '10' Then begin gesuchterWert := copy(sl[0], 19, 3); 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
      
Beiträge: 207
Erhaltene Danke: 1
|
Verfasst: 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:
Delphi-Quelltext 1:
| If Copy (Sl[Idx], 1, 2) = '10' Then begin | |
Zuletzt bearbeitet von cbs am Fr 12.09.03 15:31, insgesamt 1-mal bearbeitet
|
|
StefanH
      
Beiträge: 1144
Win XP
D5 Standard, D7 Pers, D2005 Pers
|
Verfasst: 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 
      
Beiträge: 196
Win 2000, XP, SuSE Linux 8.2
D5 Enterp.
|
Verfasst: 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
      
Beiträge: 1547
Win 7
Delphi XE5 Pro
|
Verfasst: Fr 12.09.03 17:56
hallo,
hast du auch bei der zuweisung von gesuchter wert den schleifenzähler reingemacht?
Delphi-Quelltext 1:
| gesuchterWert := copy(sl[idx], 19, 3); |
Gruß
Ken
_________________ Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
|
|
LuckyStrike4life 
      
Beiträge: 196
Win 2000, XP, SuSE Linux 8.2
D5 Enterp.
|
Verfasst: Mo 22.09.03 09:47
CenBells hat folgendes geschrieben: | hallo,
hast du auch bei der zuweisung von gesuchter wert den schleifenzähler reingemacht?
Delphi-Quelltext 1:
| gesuchterWert := copy(sl[idx], 19, 3); |
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 
      
Beiträge: 196
Win 2000, XP, SuSE Linux 8.2
D5 Enterp.
|
Verfasst: Mo 22.09.03 09:54
Um es schnell komplett zu machen - für Leute die n ähnliches Problem haben, hier der Code:
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], 1, 2) = '10' Then begin gesuchterWert := copy(sl[idx], 19, 3); TableMain.Append; TableMain.FieldByName('relev').AsString := gesuchterWert; TableMain.Post; end;
end; Finally SL.Free; end; end; |
_________________ ... ich kann doch nichts ...
|
|