AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi StringGrid - Minimum, Maximum, Durchschnitt bestimmen
Thema durchsuchen
Ansicht
Themen-Optionen

StringGrid - Minimum, Maximum, Durchschnitt bestimmen

Ein Thema von atgis · begonnen am 18. Sep 2007 · letzter Beitrag vom 20. Sep 2007
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
atgis
(Gast)

n/a Beiträge
 
#1

StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 18. Sep 2007, 15:03
Hallo,

Ich habe folgendes Problem. Ich hab hier ein Programm, welches eine TXT Datei laden soll. Danach soll es aus den unterschiedlichen nummerischen Werten das Minimum, Maximum sowie das Arithmetische Mittel errechnen...

Die TXT Datei besteht aus "zwei" Teilen. Ein Kommentar Bereich und eben die Werte.

Also meine Überlegung wäre nun, den Kommentarbereich in ein Memo-Feld zuladen. Funktioniert auch...

Die einzelnen Werte der TXT sind wohl am besten in einem StringGrid aufgehoben. Nun möchte ich aber die TXT erst aber einer gewissen Zeile (nämlich nach dem Kommentar-Bereich) laden...Wie stell ich das an?

Hier erstmal die TXT:
Delphi-Quellcode:
'**************************************************************************
'LogView File; ScopeView Version:1.03
'Copyright 1994, AGA Associates.
'File Created: 10:20:24pm Nov 14, 03
'**************************************************************************
'Timebase: 00:00:01
'Hi Limit: Off
'Lo Limit: Off
'Filter Mode: Capture All Data; Filter Off
'**************************************************************************
   0020    C   TE   09:20:01pm
   0020    C   TE   09:20:02pm
   0020    C   TE   09:20:03pm
   0020    C   TE   09:20:04pm
   0021    C   TE   09:20:05pm
   0022    C   TE   09:20:06pm
   0023    C   TE   09:20:07pm
   0023    C   TE   09:20:08pm
   0024    C   TE   09:20:09pm
   0023    C   TE   09:20:10pm
   0023    C   TE   09:20:11pm
   0022    C   TE   09:20:12pm
   0020    C   TE   09:20:13pm
   0020    C   TE   09:20:14pm
   0019    C   TE   09:20:15pm
....usw....
So lade ich die TXT in das StringGrid:

Delphi-Quellcode:
procedure TForm2.btLadenClick(Sender: TObject);
var Datei: Textfile;
    ZeileIndex, SpalteIndex: integer;
    Zeile: string;

 //Laden der TXT in das StringGrid
 AssignFile(Datei, OpenDialog1.FileName);
 reset(Datei);
 ZeileIndex:=1;
 while not EoF(Datei) do
  begin
   readln(Datei, Zeile);
   SpalteIndex:=0;
   while pos(chr(9), Zeile) <> 0 do
   begin
    sgMess.Cells[SpalteIndex, ZeileIndex]:=copy(Zeile, 1, pos(chr(9), Zeile)-1);
    delete(Zeile, 1, pos(chr(9), Zeile));
    inc(SpalteIndex);
   end;
 sgMess.Cells[SpalteIndex, ZeileIndex]:=Zeile;
 inc(ZeileIndex);
 //Tabelle automatisch um 1 Zeile erhöhen
 sgMess.RowCount:=sgMess.RowCount+1;
 end;
 CloseFile(Datei);
//letze Zeile ist zuviel -> überstehende Zeile löschen
sgMess.RowCount:=sgMess.RowCount-1;
end;
Aber wiegesagt, soll der Inhalt erst nach dem Kommentar-Bereich geladen werden (ab der 10 Teile).

Kann mir jemand helfen?




EDIT: Das erste Problem ist gelöst! Der der Inhalt wird erst nach dem Kommentar-Bereich, in das StringGrid geladen...

Fehlt noch die Maximum, Minimum und Mittelwert bestimmung...
  Mit Zitat antworten Zitat
kaiser1401

Registriert seit: 6. Mär 2006
Ort: Gescher
157 Beiträge
 
Delphi 7 Professional
 
#2

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 18. Sep 2007, 15:10
mh, da deine Kommentare mit ' zu beginnen scheinen könttest du bei jeder Zeile zunächst vergleichen ob das 1. Zeichen ein solches ist und diese ZEile dann ignorieren bzw überspringen ...

Edit:

Also in dem Memo, nachdem du die Datei eingelesen hast:

Delphi-Quellcode:
while (memo1.lines.count>0) and (copy(memo1.lines[0],1,1 = '''') do
 begin
  memo1.lines.delete(0); // das delete ist geraten, grad die syntax nicht im kopf
 end;
inc(i);
  Mit Zitat antworten Zitat
atgis
(Gast)

n/a Beiträge
 
#3

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 18. Sep 2007, 15:45
Zitat:
mh, da deine Kommentare mit ' zu beginnen scheinen könttest du bei jeder Zeile zunächst vergleichen ob das 1. Zeichen ein solches ist und diese ZEile dann ignorieren bzw überspringen ...
Genau das, hatte ich mir auch schon überlegt! Ich habe bloß Probleme die Abfrage an der richtigen stelle einzufügen...

Delphi-Quellcode:
 
if pos(1, 1) = chr(96) then
ShowMessage('Ist eins')
 else
ShowMessage('Ist keins');
Sowas funktioniert aber nicht...
  Mit Zitat antworten Zitat
pstruh
(Gast)

n/a Beiträge
 
#4

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 18. Sep 2007, 15:50
Hallo, wenn noch nicht gelöst, dann vielleicht so ...
Delphi-Quellcode:
while not EoF(Datei) do
  begin
   readln(Datei, Zeile);
   if Zeile[1]<>'''then begin // << zusätzlich
    SpalteIndex:=0;
    while pos(chr(9), Zeile) <> 0 do
    begin
     sgMess.Cells[SpalteIndex, ZeileIndex]:=copy(Zeile, 1, pos(chr(9), Zeile)-1);
     delete(Zeile, 1, pos(chr(9), Zeile));
     inc(SpalteIndex);
    end;
 sgMess.Cells[SpalteIndex, ZeileIndex]:=Zeile;
 inc(ZeileIndex);
 //Tabelle automatisch um 1 Zeile erhöhen
 sgMess.RowCount:=sgMess.RowCount+1;
 end; // << zusätzlich
end;
  Mit Zitat antworten Zitat
pstruh
(Gast)

n/a Beiträge
 
#5

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 18. Sep 2007, 15:53
Hm, wieso pos(1,1)=Chr(96) ???? Wenn schon, dann pos(chr(96),Zeile)=1 then ...
aber da ist kein #96, sondern ein #39 in deiner Datei
  Mit Zitat antworten Zitat
atgis
(Gast)

n/a Beiträge
 
#6

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 18. Sep 2007, 16:14
Zitat:
Hm, wieso pos(1,1)=Chr(96) ???? Wenn schon, dann pos(chr(96),Zeile)=1 then ...
aber da ist kein #96, sondern ein #39 in deiner Datei
Ja hab ich vertauscht! Danke für den Hinweis...

Delphi-Quellcode:
if Zeile[1]<>'''then begin // << zusätzlich
end;
Funktioniert leider nicht -> Exception!


EDIT: Ich muss irgendwie jede Zeile überprüfen, ob das erste Zeichen ein #39 ist! Wenn ja soll die Zeile nicht ausgegeben werden. Wenn nicht wird einfach weitergemacht und nur Zeilen ohne #39 werden ausgegeben...

Mh aber wie?
  Mit Zitat antworten Zitat
pstruh
(Gast)

n/a Beiträge
 
#7

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 18. Sep 2007, 16:16
na, dann mit pos(#39,Zeile)=0 ...
  Mit Zitat antworten Zitat
atgis
(Gast)

n/a Beiträge
 
#8

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 18. Sep 2007, 16:23
Mh...ich bekomm immer eine Exception...
http://img3.imagebanana.com/img/c81i.../NeuBitmap.JPG
  Mit Zitat antworten Zitat
kaiser1401

Registriert seit: 6. Mär 2006
Ort: Gescher
157 Beiträge
 
Delphi 7 Professional
 
#9

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 18. Sep 2007, 16:28
"zeile" ist kein array, sondern nur ein string, oder?
also knallt zeile[1] auch.
inc(i);
  Mit Zitat antworten Zitat
atgis
(Gast)

n/a Beiträge
 
#10

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 18. Sep 2007, 16:30
Jawohl, Zeile ist String...beides bringt die Exception...

Mh, was kann man da machen?!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  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 23:16 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