AGB  ·  Datenschutz  ·  Impressum  







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

Erkennen von Lines

Ein Thema von homerunjack · begonnen am 2. Sep 2005 · letzter Beitrag vom 3. Sep 2005
Antwort Antwort
Seite 2 von 3     12 3      
homerunjack

Registriert seit: 22. Aug 2005
31 Beiträge
 
#11

Re: Erkennen von Lines

  Alt 2. Sep 2005, 22:20
und wie kann ich nun die erste zeile ignorieren und dann jeweils die zweite in integer konvertieren

Zeile1 ignorieren

zeile 2 beschreibung
zeile 3 preis // integer
zeile 4 beschreibung
zeile 5 preis// integer
zeile 6 ........
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#12

Re: Erkennen von Lines

  Alt 2. Sep 2005, 22:53
na mit trystrtoint....

Delphi-Quellcode:
for i:= 0 to sl.lines.count -1 do
 if trystrtoint(sl.lines[i]) then sum:=sum + strtoint(sl.lines[i]);
Noch fragen?

Und jetzt zurück zu den revolutionären tagesgeschäften...
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Saarpoint

Registriert seit: 2. Sep 2005
12 Beiträge
 
Delphi 2005 Professional
 
#13

Re: Erkennen von Lines

  Alt 2. Sep 2005, 23:04
Hi!

Schieb doch einfach ne temporäre String-Variable dazwischen:
Delphi-Quellcode:
AssignFile (Datei, DateiName);
Reset (Datei);
 ReadLn (Datei, Temp); // Zeile 1 ignorieren
  for i := 1 To Max do begin
    ReadLn (Datei, zeile1); // Bezeichnung
    ReadLn (Datei, zeile2); // +1 entfernt, da Betrag direkt in der nächsten Zeile kommt
  
  Val(Zeile2, int_Betrag, ErrCode);
end;
Deklarationen:

var
ErrCode, int_Betrag: Integer;
Temp: String;

Arbeitest Du auch mit ungeraden Beträgen (mit Cent-Angaben) soltest
Du int_Betrag als Real definieren.

Hoffe, dir geholfen zu haben.

Gruß, Andy
  Mit Zitat antworten Zitat
homerunjack

Registriert seit: 22. Aug 2005
31 Beiträge
 
#14

Re: Erkennen von Lines

  Alt 3. Sep 2005, 08:32
Code:
[b]const Max = ChecklisteEin.Lines.Count;[/b]
begin
if OpenDialog1.Execute then

  DateiName := OpenDialog1.FileName ;
  ChecklisteEin.Lines.LoadFromFile(OpenDialog1.FileName);
  AssignFile (Datei, DateiName);
  Reset (Datei);
  AssignFile (Datei, DateiName);
Reset (Datei);
ReadLn (Datei, Temp); // Zeile 1 ignorieren

  for i := 1 To Max DO
   begin
    ReadLn (Datei, zeile1); // Bezeichnung
    ReadLn (Datei, zeile2); // +1 entfernt, da Betrag direkt in der nächsten Zeile kommt

  Val(Zeile2, int_Betrag, ErrCode);

end;
  Panel1.Caption := ();
ich habe das jetzt erstmal so übernommen aber das mit der Konstanten geht irgendwie überhaupt nicht ??
und wie kann ich nun alles zusammenrechnen lassen??? tut mir ja leid das ich euch so nerve

[edit=Sharky]PRE-Tags eingefügt. Mfg, Sharky[/edit]
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#15

Re: Erkennen von Lines

  Alt 3. Sep 2005, 09:05
Hi,

Zitat von homerunjack:
der text in der memobox und demzufolge auch in der textdatei die ich gespeichert habe sieht immer so aus;

ChecklisteEin // Name des memo felds steht so da
Fernseher
...
ist dir klar, dass der von dir für die Memo-Komponente vergebene Name als Standardtext übernommen wird und auf dem Formular nur zur Orientierung angezeigt wird? Entweder du verzichtest auf diesen "Komfort" indem du die Memo-Lines im Objekt-Inspektor löschst, oder du löschst die Zeilen in deinem Programm immer dann, wenn es nötig ist.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Erkennen von Lines

  Alt 3. Sep 2005, 09:45
mach aus dem const einfach ein var, homerunjack, und weise es zur laufzeit zu ( max:=memo1.lines.count -1). Konstanten funktionieren anders
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
homerunjack

Registriert seit: 22. Aug 2005
31 Beiträge
 
#17

Re: Erkennen von Lines

  Alt 3. Sep 2005, 09:47
@marabu: stimmt ich dachte die ist standardmäßig da und lässt sich nicht entfernen
@DGL-Luke: ja das ist mir auch gerade eingefallen

so wie kann ich nun aus jeder zweiten zeile die werte zusammenrechnen???

procedure TForm1.ffnen1Click(Sender: TObject);
var DateiName, zeile1, zeile2: String;
Datei: TextFile;
i, ErrCode, int_Betrag, Max, vermoegen: Integer;
Temp: String;


begin
if OpenDialog1.Execute then

DateiName := OpenDialog1.FileName ;
ChecklisteEin.Lines.LoadFromFile(OpenDialog1.FileN ame);
Max := ChecklisteEin.Lines.Count;
AssignFile (Datei, DateiName);
Reset (Datei);
AssignFile (Datei, DateiName);
Reset (Datei);
for i := 1 To Max DO
begin
ReadLn (Datei, zeile1); // Bezeichnung
ReadLn (Datei, zeile2); // +1 entfernt, da Betrag direkt in der nächsten Zeile kommt

Val(Zeile2, int_Betrag, ErrCode);

vermoegen := zeile2 + jede weitere 2. zeile ???

Panel1.Caption:= FloatToStr (vermoegen);
end;
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#18

Re: Erkennen von Lines

  Alt 3. Sep 2005, 10:11
Hi,

die automatisch von der Delphi-IDE generierten Namen sind nur Platzhalter - du solltest die abändern, damit sich nicht sowas wie OpenDialog1 oder Edit1234 in deinem Programm breit macht.

Schau mal, ob du das zum Laufen bringst:

Delphi-Quellcode:
procedure TMainForm.FileOpenClick(Sender: TObject);
var
  i, iError, iBetrag, iSaldo: integer;
  s: TStrings;
begin
  if not OpenDialog.Execute then Exit;

  s := ChecklisteEin.Lines;
  s.LoadFromFile(OpenDialog.FileName);

  iError := 0;
  iSaldo := 0;

  for i := 0 To s.Count - 1 do
  begin
    if not Odd(i) then
      Continue;
    if not TryStrToInt(s[i], iBetrag)
      then Inc(iError)
      else iSaldo := iSaldo + iBetrag;
  end;

  SaldoPanel.Caption := IntToStr(iSaldo);
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
homerunjack

Registriert seit: 22. Aug 2005
31 Beiträge
 
#19

Re: Erkennen von Lines

  Alt 3. Sep 2005, 12:05
Ja das mit dem Laden klappt jetzt(danke, marabu und co.)

doch du hast ja geschrieben

iSaldo := 0;

wenn ich nun etwas geladen habe und eine neue Beschreibung mit preis hinzufüge fängt das programm wieder bei null an und rechnet dann normal weiter, sozusagen das laden geht doch den ausgangswert von der textdatei kann nicht weiterverwendet werden
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
// das passiert wenn einnahmen angeklickt wird
begin
if RadioEin.Checked then Neu:= StrToFloat (Edit2.Text);
if RadioEin.Checked then ChecklisteEin.Lines.Add (Edit1.Text) ;
if RadioEin.Checked then Edit3.text := FloatToStr(Neu);
if RadioEin.checked then ChecklisteEin.Lines.Add(Edit3.Text ) ;

if RadioEin.Checked then Gewinnzwei:= (Gewinn + Neu + Gewinn) ;
if RadioEin.Checked then Panel1.Caption:= Floattostr (Gewinnzwei);

end;
// das passiert wenn ausgaben angeklickt wird
begin
if RadioAus.Checked then Neu:= StrToFloat (Edit2.Text);
if RadioAus.Checked then ChecklisteEin.Lines.Add (Edit1.Text) ;
if RadioAus.Checked then Edit3.text := FloatToStr(Neu * -1);
if RadioAus.checked then ChecklisteEin.Lines.Add(Edit3.Text ) ;

[b]if RadioAus.Checked then Gewinnzwei:= (Gewinnzwei - Neu + Gewinn) ;
if RadioAus.Checked then Panel1.Caption:= Floattostr (Gewinnzwei);


end;[/b]


if (not RadioAus.checked) and (not RadioEin.checked) then ShowMessage ('Ein- oder Ausgabe anklicken');



end;

procedure TForm1.Beenden1Click(Sender: TObject);
begin
close;
end;



procedure TForm1.ffnen1Click(Sender:TObject);
var
  i, iError, iBetrag, Gewinn: integer;
  s: TStrings;

  begin

  if OpenDialog1.Execute then

  begin
  s := ChecklisteEin.Lines;
  s.LoadFromFile(OpenDialog1.FileName);

  iError := 0;
  Gewinn := 0;
  for i := 0 To s.Count - 1 do
  begin
    if not Odd(i) then
      Continue;
    if not TryStrToInt(s[i], iBetrag)
      then Inc(iError)
      else Gewinn := Gewinn + iBetrag;
  end;

  Panel1.Caption := IntToStr(Gewinn);

    end;
[edit=Sharky]Delphi-Tags gesetzt. Bitte zukünftig selber machen Mfg, Sharky[/edit]
  Mit Zitat antworten Zitat
tigerman33

Registriert seit: 30. Jul 2005
Ort: München
423 Beiträge
 
Delphi 2005 Professional
 
#20

Re: Erkennen von Lines

  Alt 3. Sep 2005, 12:08
Muss denn das unbedingt eine Textdatei sein? Es wäre schöner und einfacher zu handeln, wenn du dir einen eigenen Datentyp deklarierst und den dann in eine typisierte Datei schreibst. Dir also quasi dein eigenes Dateiformat baust. Und ausgeben ließe sich das dann vielleicht in einer ListView im vsReport-Modus. Also so ungefährt so:

Name | Preis
----------+------
Gehalt | 500
Fernseher | -1500

Der Typ könnte dann z.B. so aussehen:
Delphi-Quellcode:
type TEintrag = record
  Name: string;
  Preis: integer;
end;
//edit
Hrrmpf, hat meine ganze schöne Formatierung übern Jordan geschickt
Christian
Der Computer hilft mir, Probleme zu lösen, die ich ohne Computer nicht hätte.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 04:54 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