AGB  ·  Datenschutz  ·  Impressum  







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

Datei einlesen - Milchalarm

Offene Frage von "ljmarkus"
Ein Thema von ljmarkus · begonnen am 16. Dez 2008 · letzter Beitrag vom 16. Dez 2008
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
ljmarkus

Registriert seit: 14. Apr 2007
Ort: Göttingen
46 Beiträge
 
Delphi 7 Personal
 
#1

Datei einlesen - Milchalarm

  Alt 16. Dez 2008, 15:33
Hallo.

für einen Freund möchte ich ein Milchalarm Programm schreiben.
Die Daten von der Melkanlage liegen als File vor.

Wie kann ich eine Text-Datei öffnen und zb. in Zeile 8 gehen und die Position (Cursorposition) 5,6,7 auslesen ?



schon mal vielen Dank, Markus
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Datei einlesen - Milchalarm

  Alt 16. Dez 2008, 15:40
Hallo,

eine Datei kannst Du z.B. in eine StringList einlesen.

Delphi-Quellcode:
sl := TStringList.create;
sl.loadFromFile;
s:=sl[7]; die 8. Zeile
b5:=s[5]; der 5. Buchstabe
...
sl.free;
Wenn Du die Buchstaben 5-7 brauchst,
kannst Du sie mit der Funktion copy() (siehe Delphi Hilfe)
herauskopieren.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Datei einlesen - Milchalarm

  Alt 16. Dez 2008, 15:42
Hat die Datei ein bestimmtes Format (CSV; Trennung mit Komma, Stringpunkt, Tab, ...)?
Markus Kinzler
  Mit Zitat antworten Zitat
ljmarkus

Registriert seit: 14. Apr 2007
Ort: Göttingen
46 Beiträge
 
Delphi 7 Personal
 
#4

Re: Datei einlesen - Milchalarm

  Alt 16. Dez 2008, 15:48
Die hat folgendes Format:


VN000000 15767 120081012 223 210 usw...
VN000000 22197 220071224 183 198 usw...

Aufgeschlüsselt ist das Format:

unbekannt Kuhnr. Transponder unbekannt Gemelk1 Gemelk2 usw.
VN000000 1 5767 120081012 223 210
VN000000 2 2197 220071224 183 198

usw.



lg, markus



edit: im Anhang 1ne Datei mit 3 Datensätzen.
Angehängte Dateien
Dateityp: txt alvherd_142.txt (335 Bytes, 15x aufgerufen)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Datei einlesen - Milchalarm

  Alt 16. Dez 2008, 15:50
Könnte man ja auch eine CSV-DataSet verwenden oder halt ein 2 geschachtelte StringListen mit entsprechenden Delimiter oder Explode()
Markus Kinzler
  Mit Zitat antworten Zitat
ljmarkus

Registriert seit: 14. Apr 2007
Ort: Göttingen
46 Beiträge
 
Delphi 7 Personal
 
#6

Re: Datei einlesen - Milchalarm

  Alt 16. Dez 2008, 16:45
Hab mal eine Datei mit angehängt.

lg, markus
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Datei einlesen - Milchalarm

  Alt 16. Dez 2008, 16:53
Hallo,
wenn ich die Struktur so sehe, ist sie doch eindeutig und leicht in eine Datenbank, zum besseren bearbeiten/auswerten, zu implementieren.
Nimm einfach eine einfache Datenbank(kbmMemtable z.B.) erzeuge eine Datenbankstruktur..(Vnr....KuhNr. ..usw.) und konvertiere (einfache Variante) z.B.  KB1.VNr:=copy(1,8,vnr); etc. jeden Datensatz.
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Datei einlesen - Milchalarm

  Alt 16. Dez 2008, 16:54
Da das so aussieht, als ob die Sätze feste Längen haben, gebe ich Kaki vollinhaltlich Recht, das müsste recht einfach zu parsen sein.
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
ljmarkus

Registriert seit: 14. Apr 2007
Ort: Göttingen
46 Beiträge
 
Delphi 7 Personal
 
#9

Re: Datei einlesen - Milchalarm

  Alt 16. Dez 2008, 16:55
hört sich gut an, nur wie mache ich es ?


lg, markus
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Datei einlesen - Milchalarm

  Alt 16. Dez 2008, 16:59
Das Einfachste dürfte ein Record oder eine Klasse sein, die die zu füllenden Felder beinhaltet. Durch den Einsatz von Copy kannst Du diese dann der Reihe nach befüllen. Ich bin gerade unter Linux unterwegs, aber ich könnte das ja mal schnell mit Lazarus probieren.

[edit] So, hier mal eine "Schmalspurversion" mit einer ListView (vsReport):
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var sl: TStringList;
    i: integer;
    s: string;
    Item: TListItem;
begin
  sl := TStringList.Create;
  try
    sl.LoadFromFile(Dateiname);
    for i := 0 to sl.Count - 1 do
      begin
        if Length(sl[i]) < 3 then break;
        s := sl[i];
        Delete(s,1,8); //die ersten 8 Stellen werden nicht benutzt
        Item := ListView1.Items.Add;
        Item.Caption := Copy(s,1,4); //Kuh-Nr. (Stelle 1 bis 4)
        Item.SubItems.Add(Copy(s,5,4));//Transponder (Stelle 5 bis 8)
      end;
  finally
    sl.Free;
  end;
end;
[/edit]
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 1 von 4  1 23     Letzte »    


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 21:14 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