AGB  ·  Datenschutz  ·  Impressum  







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

Text in die letze Zeile vom StringGrid

Ein Thema von SaFu · begonnen am 12. Jun 2008 · letzter Beitrag vom 16. Jun 2008
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#11

Re: Text in die letze Zeile vom StringGrid

  Alt 12. Jun 2008, 10:48
Ok

StringGrid.Rows[0].IndexOf('gesuchte Überschrift') So hats gestimmt wenn ich im string einen schreibfehler mache kann es ja nicht gehen und wenn ich dann noch die variable benutze die ich in der Procdure wo anders eingesetzt habe kann es auch nicht gehen

jetzt funzt es aber danke
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#12

Re: Text in die letze Zeile vom StringGrid

  Alt 12. Jun 2008, 11:00
hab doch nochmal ne frage warum werden bei manschen dateien nicht die zwei zeilen angehängt, sonder das ergebnis wird in die letzte Zeile geschrieben in denen noch werte stehen??

Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
Var i,x,y : integer;
 summe1,ErgebnisSwichedDuration : double;
begin
Label3.Caption:= '';
Label7.Caption:= '';
y:= StringGrid1.Rows[0].IndexOf('SwitchedDuration');
 begin

   for I := 0 to StringGrid1.RowCount - 1 do
   if StringGrid1.Cells[i,0] = 'Waythen
    for x := 0 to StringGrid1.ColCount -1 do
    if StringGrid1.Cells[x,0] = 'SwitchedDurationthen


      ErgebnisSwichedDuration:= (findStrings(StringGrid1.Cols[i],StringGrid1.Cols[x]));
      summe1:= (ErgebnisSwichedDuration);

     StringGrid1.RowCount:= StringGrid1.RowCount +2;
     StringGrid1.Cells[y,Pred(StringGrid1.RowCount)]:= Format('%.6f',[summe1/(60)])+' min.';
     StringGrid1.Cells[0,Pred(StringGrid1.RowCount)]:= 'Gesamt';
 end;
end;
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#13

Re: Text in die letze Zeile vom StringGrid

  Alt 12. Jun 2008, 11:06
Ist das eigentlich richtig, dass Du erst y ermittelst und dann in einer Schleife noch einmal nach SwitchedDuration suchst? Wieso er die Zeilen nicht anfügt, weiß ich im Moment allerdings auch nicht.
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
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#14

Re: Text in die letze Zeile vom StringGrid

  Alt 12. Jun 2008, 11:14
Stimmt hast recht kann mir eigentlich zwei zeilen sparen vielleicht fällt ja noch jemanden was auf warum manschmal die zwei zeilen nicht angehängt wereden
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#15

Re: Text in die letze Zeile vom StringGrid

  Alt 12. Jun 2008, 11:46
Da sind for's und if's drin. Der Source ist schlecht formatiert. Vielleicht ist es im Original ja besser, aber so hagelt es eben Fehler der einfachsten Sorte. Die Abfrage über strings ist auch nicht gerade das Gelbe vom Ei. Und : schreibe mal normalen Text etwas leserlicher, ist so zu anstrengend zu lesen.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#16

Re: Text in die letze Zeile vom StringGrid

  Alt 12. Jun 2008, 11:57
besser so

wenn du mir jetzt noch den fehler sagen könntest oder verbesserungsvorschläge hast nur her damit.

Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
Var i,y : integer;
    summe1,ErgebnisSwichedDuration : double;
begin
 ErgebnisSwichedDuration:= 0;
 Label3.Caption:= '';
 Label7.Caption:= '';
 y:= StringGrid1.Rows[0].IndexOf('SwitchedDuration');
  begin
   if StringGrid1.Rows[0].IndexOf('SwitchedDuration') = 4 then
     begin
      for I := 0 to StringGrid1.RowCount - 1 do
       if StringGrid1.Cells[i,0] = 'Waythen

        ErgebnisSwichedDuration:= (findStrings(StringGrid1.Cols[i],StringGrid1.Cols[y]));
        summe1:= (ErgebnisSwichedDuration);

        StringGrid1.RowCount:= StringGrid1.RowCount +2;
        StringGrid1.Cells[y,Pred(StringGrid1.RowCount)]:= Format('%.6f',[summe1/(60)])+' min.(OUT)';
        StringGrid1.Cells[0,Pred(StringGrid1.RowCount)]:= 'Gesamt';
     end
   else
  exit;
  end
end;
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#17

Re: Text in die letze Zeile vom StringGrid

  Alt 12. Jun 2008, 12:14
Ich würde in der Gegend von Zeile 19 einen Breakpoint setzen oder eine showmesage mit der Stringgrid-Zeilennummer. Hehe, was seh ich denn da noch ? Wie vermutet ist die Logik wohl falsch. Die for-Schleife läuft über RowCount und das wird in der for- Schleife selber dann erhöht ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#18

Re: Text in die letze Zeile vom StringGrid

  Alt 16. Jun 2008, 09:09
Guten morgen

Da ich immer noch das Problem habe, das manchmal da Ergebnis in die letzte, statt in die letzte +2 geschrieben wird muss ich das Thema doch nochmal aufgreifen.


Das mit dem Brakepoint und Showmessage hat mich nicht weiter gebracht bekomme immer das Ergebnis was es eigentlich sein soll vielleicht hat jemand noch ne idee

Gruß Sascha
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
marabu

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

Re: Text in die letze Zeile vom StringGrid

  Alt 16. Jun 2008, 10:21
Moin Sascha,

vielleicht solltest du mal einen ScreenShot von deinem Grid anhängen, damit man besser versteht was du da machen willst.

Zu deinem Code:

Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
Var
  i, iLastRow, iSD, iWay: Integer;
  summe1, ErgebnisSwichedDuration: Double;
begin
  ErgebnisSwichedDuration := 0;
  Label3.Caption := '';
  Label7.Caption := '';
  iSD := StringGrid1.Rows[0].IndexOf('SwitchedDuration');
  iWay := StringGrid1.Rows[0].IndexOf('Way');

  // warum diese Prüfung?
  // if StringGrid1.Rows[0].IndexOf('SwitchedDuration') = 4 then

  // i läuft über die Zeilen inklusive Titelzeile
  for i := 0 to StringGrid1.RowCount - 1 do
    // warum suchst du mit dem Zeilenindex eine Spalte ?
    if StringGrid1.Cells[i, 0] = 'Waythen
      // was macht FindStrings()?
      ErgebnisSwichedDuration := findStrings(StringGrid1.Cols[i], StringGrid1.Cols[y]);

  summe1 := ErgebnisSwichedDuration;
  StringGrid1.RowCount := StringGrid1.RowCount + 2;
  iLastRow := Pred(StringGrid1.RowCount);
  StringGrid1.Cells[y, iLastRow] := Format('%.6f min.(OUT)', [summe1 / 60]);
  StringGrid1.Cells[0, iLastRow] := 'Gesamt';
end;
Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#20

Re: Text in die letze Zeile vom StringGrid

  Alt 16. Jun 2008, 10:37
So ghab mal die screenshoots angehängt

Delphi-Quellcode:
  // warum diese Prüfung?
  // if StringGrid1.Rows[0].IndexOf('SwitchedDuration') = 4 then
damit nur nur in die schleife gegeangen wird wenn diese überschrift vorhanden ist.

Hier nochmal alles mit findStrings

Delphi-Quellcode:
function findStrings(sl:TStrings;s:TStrings;cSeparator: char = '.'): double;
var i :Integer;
    ergebnis :Tstrings;
    OldSep: char;
begin
  OldSep := DecimalSeparator; //Sichern des alten Zustandes
  DecimalSeparator := cSeparator; //Umstellen des Dezimalseparators
  Result := 0;
  ergebnis:= TStringList.Create;
  try
   for i := 1 to Pred(sl.Count)-1 do
    if (sl[i]) = 'OUTthen
     begin
      ergebnis.Add(s[i]); //hier die änderung
      Result := Result + StrToFloatDef(s[i],0); //hier die Ergänzung
     end;
    ergebnis.SaveToFile('c:\test.txt');
   finally
  ergebnis.Free;
  end;
  DecimalSeparator := OldSep; //Wiederherstellen des alten Zustandes
end;

procedure TForm1.Button6Click(Sender: TObject);
Var i,y : integer;
 summe1,ErgebnisSwichedDuration : double;
begin
 ErgebnisSwichedDuration:= 0;
 Label3.Caption:= '';
 Label7.Caption:= '';
 y:= StringGrid1.Rows[0].IndexOf('SwitchedDuration');
  begin
   if StringGrid1.Rows[0].IndexOf('SwitchedDuration') = 4 then
     begin
      for I := 0 to StringGrid1.RowCount - 1 do
       if StringGrid1.Cells[i,0] = 'Waythen

        ErgebnisSwichedDuration:= (findStrings(StringGrid1.Cols[i],StringGrid1.Cols[y]));
        summe1:= (ErgebnisSwichedDuration);

        StringGrid1.RowCount:= StringGrid1.RowCount +2;
        StringGrid1.Cells[y,Pred(StringGrid1.RowCount)]:= Format('%.6f',[summe1/(60)])+' min.(OUT)';
        StringGrid1.Cells[0,Pred(StringGrid1.RowCount)]:= 'Gesamt';
     end
   else
  exit;
  end
end;
Miniaturansicht angehängter Grafiken
so_ist_es_falsch_203.jpg   so_sollte_es_sein_194.jpg  
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  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 12:42 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