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 2 von 5     12 34     Letzte »    
kaiser1401

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

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 18. Sep 2007, 16:34
die datei existiert auch? hast du den opendialog vorher aufgerufen und mit ok bestätigt? sonst steht in der eigenschaft Filename nix drin. ansonsten geh ma mit dem debugger durch un guck wo`s knallt. (Haltepunkt setzen mit F5, ausführen mit F9 bist du da ankommst, weiterer Schritt mit F8 )
inc(i);
  Mit Zitat antworten Zitat
pstruh
(Gast)

n/a Beiträge
 
#12

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 18. Sep 2007, 16:38
Also IOerror 104 bedeutet "Datei wurde nicht für Leseoperation geöffnet" ...

PS : Wenn die Variable "Zeile" ein String ist, dann sollte mit Zeile[n] eigentlich das n-te Zeichen des Strings extrahiert werde (ohne jeden Knall) - oder sehe ich das falsch?
  Mit Zitat antworten Zitat
atgis
(Gast)

n/a Beiträge
 
#13

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 18. Sep 2007, 16:44
Also wenn es bei if pos(chr(39),Zeile)=0 then begin // << zusätzlich ankommt,

Überspringt es alles bis CloseFile(Datei); springt hoch und "knallt" bei

while not EoF(Datei) do
EDIT: Ich häng das Programm mal an.
  Mit Zitat antworten Zitat
pstruh
(Gast)

n/a Beiträge
 
#14

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 18. Sep 2007, 16:49
So, der pstruh muss jetzt aus dem Büro nach Hause schwimmen! Ich denke, du suchst an der falschen Stelle. Die Fehlermeldung 104 sagt ja, dass die Datei gar nicht gelesen werden kann. Hier musst du erst einmal ansetzen. Bis später ... und viel Erfolg
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#15

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 18. Sep 2007, 17:23
Wenn du die Daten eh schon in einem TMemo hast, wozu dann nochmals laden ?
So geht auch:
Delphi-Quellcode:
procedure TForm2.btLadenClick(Sender: TObject);
var
    ZeileIndex, SpalteIndex: integer;
    Zeile: string;
    i : integer;
    liste : TStrings;
begin
 //Pfad zum Stammverzeichnis
 OpenDialog1.InitialDir:=ExtractFilePath(ParamStr(0));

 if not opendialog1.Execute then
  exit;
 Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
 liste := Memo1.lines;

 // Daten ins Stringgrid übertragen
 ZeileIndex:=1;
 for i:=0 to liste.count-1 do
  begin
   zeile := liste[i];
   if (zeile<>'') and (zeile[1]='''') then
      continue; // Kommentarzeile überspringen

   //Tabelle automatisch um 1 Zeile erhöhen
   sgMess.RowCount:=sgMess.RowCount+1;

   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);
 end;
end;
Andreas
  Mit Zitat antworten Zitat
atgis
(Gast)

n/a Beiträge
 
#16

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 18. Sep 2007, 18:16
Vielen Dank! Funktioniert einwandfrei
http://img3.imagebanana.com/img/2g4h.../NeuBitmap.JPG

Nun zum nächsten Problem...wie bekommen ich aus der Spalte mit den Werten, das Maximum und Minimum heraus?
  Mit Zitat antworten Zitat
pstruh
(Gast)

n/a Beiträge
 
#17

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 18. Sep 2007, 20:14
Hallo atgis,
deine Frage ist jetzt etwas verwunderlich, da die Lösung doch sehr einfach: In einer Schleife durchläufst du die GridSpalte mit den Werten. Vorher deklarierst du 2 Variablen MinVal:=maxInt und MaxVal:=0, wenn der Zellwert<MinVal ist, dann wird MinVal durch den Zellwert ersetzt, wenn Zellwert>MaxVal dann analog. Bist du in der letzten GridRow angekommen, stehen in beiden Variablen die gewünschten Werte. (Habe das jetzt bewusst nicht codiert), ich denke, es ist am lehrreichsten, wenn du das mit diesen Anweisungen selbst machst. Bin für weitere Hilfestellungen aber (naürlich) ansprechbar
  Mit Zitat antworten Zitat
atgis
(Gast)

n/a Beiträge
 
#18

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 19. Sep 2007, 12:05
Danke!
Delphi-Quellcode:
var MinVal: integer;
    MaxVal: integer;
    i: integer;
begin
MinVal:=maxInt;
MaxVal:=0;

for i:=1 to sgMess.RowCount-1 do
 if i < MinVal then
  MinVal:=i
 else
  if i > MaxVal then
   MaxVal:=i;

edMin.Text:=IntToStr(MinVal);
edMax.Text:=IntToStr(MaxVal);
So habe ich aber nur die Ergebnisse der ersten Spalte. Wie komme ich in die 2. Spalte mit den Werten?
  Mit Zitat antworten Zitat
pstruh
(Gast)

n/a Beiträge
 
#19

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 19. Sep 2007, 12:45
Hallo atgis,
joooo, das ist schon FAST die Lösung. Denkfehler dabei ist, dass du nur den Schleifenzähler untersuchst - du musst natürlich auf den Zellinhalt deiner Wertespalte prüfen (Werte stehen in Spalte 1, oder?)
if StrToInt(sgMess.Cells[1,i])<MinVal then MinVal:=StrToInt(sgMess.Cells[1,i]) Für den MaxWert analoges Vorgehen.
Gruß aus Hamburg
  Mit Zitat antworten Zitat
atgis
(Gast)

n/a Beiträge
 
#20

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 19. Sep 2007, 13:39
Delphi-Quellcode:
var MinVal: integer;
    MaxVal: integer;
    i: integer;
begin
MinVal:=maxInt;
MaxVal:=0;

for i:=1 to sgMess.RowCount-1 do
 if StrToInt(sgMess.Cells[1,i]) < MinVal then
  MinVal:=StrToInt(sgMess.Cells[1,i])
 else
  if StrToInt(sgMess.Cells[1,i]) > MaxVal then
   MaxVal:=StrToInt(sgMess.Cells[1,i]);

edMin.Text:=IntToStr(MinVal);
edMax.Text:=IntToStr(MaxVal);
Aber der Compiler spuckt mich schon bei StrToInt(sgMess.Cells[1,i]) an, dass der Wert 0019 kein gültiger Integerwert sei...Warum nicht? Ich wandel doch den String um? Es liegt aber nicht an 0019 - ich hab zum testen nur 19 hineingeschrieben!

http://img213.imageshack.us/img213/1...5745tq2.th.jpg
bei der Fehlermeldung "19 fehlt das andere "-Zeichen?!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 5     12 34     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 04:59 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