AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Stringgrid senkrecht in Stringgrid waagrecht umwandeln

Stringgrid senkrecht in Stringgrid waagrecht umwandeln

Ein Thema von jethro_gibbs · begonnen am 3. Feb 2010 · letzter Beitrag vom 4. Feb 2010
Antwort Antwort
jethro_gibbs

Registriert seit: 1. Feb 2010
6 Beiträge
 
#1

Stringgrid senkrecht in Stringgrid waagrecht umwandeln

  Alt 3. Feb 2010, 14:40
Hallo zusammen,

ich hab folgendes Problem:

ich hab eine Liste die wie folgt aussieht.

01.01.2010 08:00 3
01.01.2010 10:30 2
01.01.2010 17:00 1
01.01.2010 23:30 2
02.01.2010 12:00 5
02.01.2010 17:30 2
03.01.2010 23:30 5
04.01.2010 05:30 6
04.01.2010 08:00 3
04.01.2010 09:30 6
..
..
..

Die Ausgabe sollte dann wie folgt sein;
Datum 00:00 00:30 01:00 01:30 .....
01.01.2010 ... 3 ..
02.01.2010 ....5 .. 2 ..
03.01.2010
04.01.2010

Unter der jeweiligen Uhrzeit sollte dann die dazu gehörige Zahl stehen.

Ich habe bereits eine 2. Tabelle angelegt mit der jeweiligen zugehörigen Spalte
00:00 1
00:30 2
01:00 3
...

Ich steh wie Ochs vorm Berg und komm nicht weiter.
Ich schaffe es zwar schon die Datums runterzuschreiben kummuliert aber beim Rest beisst es aus.
Ich würde das ganze dann in ein 2tes Stringgrid schreiben.

Bitte helft mir.

Danke & Grüße
JG
  Mit Zitat antworten Zitat
Benutzerbild von MacGuyver
MacGuyver

Registriert seit: 9. Sep 2003
Ort: Wildeshausen
293 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Stringgrid senkrecht in Stringgrid waagrecht umwandeln

  Alt 4. Feb 2010, 22:11
Moin,

das ist doch nicht weiter schwer. Durchlaufe als erstes die linke Spalte und suche das größte und kleinste Datum.

Ich hekel das mal so zusammen, ohne es zu testen:

Delphi-Quellcode:
var lRow : Integer;
    lMax,
    lMin,
    lTmp : TDate;

begin
  lMax := 0;
  lMin := 0;
  for lRow := 0 to SG1.RowCount - 1 do
  begin
    if SG1.Cells[0,lRow] > 'then
    begin
      try
        lTmp := StrToDate(SG1.Cells[0,lRow]);
        if lMax < lTmp then
          lMax := lTmp;
        if (lMin = 0) or (lMin > lTmp) then
          lMin := lTmp;
      except
      end;
    end;
  end;
  SG2.RowCount := Trunc(lMax - lMin + 2);
  SG2.Cells[0,0] := 'Datum';
  for lRow := 1 to SG2.RowCount - 1 do
    SG2.Cells[0,lRow] := DateToStr(lMin + lRow - 1);
So, in die erste Schleife baust du noch eine Abfrage ein, wo du minimale und maximale Uhrzeit ermittelst. Damit dann die Zellen [1,0] - [n,0] füllen. Zum Schluss musst du noch einmal SG1 von oben nach unten durchlaufen, mit dem Wert die Position für Datum und Uhrzeit suchen und den Wert dort eintragen.

Krist scho hin. Ich habe noch 150 Objekte und Objektaufrufe zu überarbeiten
Englisch eine Weltsprache? Zu kompliziert und der nahe Osten würde Englisch als Pflichtweltsprache nicht akzeptieren.
IDO wäre genau das Richtige: http://forum.idolinguo.de/index.php oder www.idolinguo.de
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 09: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