AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi StringGrid mit Daten füllen und farblich Darstellen
Thema durchsuchen
Ansicht
Themen-Optionen

StringGrid mit Daten füllen und farblich Darstellen

Ein Thema von Jens Hartmann · begonnen am 29. Jan 2009 · letzter Beitrag vom 6. Apr 2009
Antwort Antwort
Seite 6 von 11   « Erste     456 78     Letzte »    
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#51

Re: StringGrid mit Daten füllen und farblich Darstellen

  Alt 27. Feb 2009, 17:42
Schade, als ich Dir eben geantwortet habe, hatte ich eine Blitzidee, von der ich dachte Sie lößt das Problem,

Leider nicht...

Delphi-Quellcode:
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
  Daten : String;
begin
  if Buffer = 'then
  begin
  ComPort1.ReadStr(Daten, Count);
  Buffer:=Buffer+Daten;
  Bufferverarbeitung;
  end;
end;
Im Anhang mal ein Screenshot, wo du sehen kannst, das der Counter der Datenbank sauber läuft, aber Datensätze (LfdNr) fehlen.
Miniaturansicht angehängter Grafiken
dbgrid_102.gif  
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#52

Re: StringGrid mit Daten füllen und farblich Darstellen

  Alt 27. Feb 2009, 18:42
Hallo Jens,

bis Du sicher, dass die Daten alle sauber übertragen werden?

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#53

Re: StringGrid mit Daten füllen und farblich Darstellen

  Alt 27. Feb 2009, 18:54
Ja, das bin ich,


Ich bin noch ein Stück weiter gekommen, das Problem, liegt im Zerstören der Globalen Var. DataMB256Plus

  DataMB256plus := ''; Setze ich diese Var. in der Procedure Bufferverarbeitung auf Leer, werden Datensätze zerstört,

Setze ich diese Var. erst nach dem Eintrag in die Datenbank auf Leer, habe ich das Problem, das wenn eine Datensatz nicht richtig mit dem Wert 'Ereignis' anfängt, der Var. nie auf Leer gesetzt wird.

Das Problem, liegt darin, das wenn Du dir mal den Datensatz anschaust, sieht man das nie ein saubere Anfang und ein sauberes Ende da ist, weil die Procedure

Delphi-Quellcode:
 
{Daten von COM-Schnittestelle lesen} 
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
immer genau das ließt, was im Speicher ist.(Puffer der EMA).

Das heißt, das durch das Zerstören, je nach angefallenen Daten die Var. zerstört wird und somit noch nicht Übergeben Daten fehlen.

Ich trage ja nur komplette Datensätze ein, um keinen Müll in der Datenbank zu haben. Von den Daten aus dem folgenden Screenshot werden somit der erste und letzte Datensatz getilt. Liegt aber nicht am Datensatz selber, sondern daran das ich ja die Var. leere, obwohl sie noch nicht geleer werden dürfte..

Ich weiß nur echt gerade nicht, wie ich das in den Griff bekommen soll.

Am besten wäre, ich könnte schon beim einlesen nur jeweils einen Datensatzt aus dem Puffer der EMA holen. Weiß aber nicht wie oder ob es überhaupt geht.
Miniaturansicht angehängter Grafiken
datenbank_122.gif  
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#54

Re: StringGrid mit Daten füllen und farblich Darstellen

  Alt 27. Feb 2009, 18:59
Hallo Jens,

ich weis ich stelle blöde Fragen, aber nur um das Problem einzugrenzen.

Holst Du die Daten aus der EMA, oder werden sie von der EMA nachdem der Puffer in der EMA voll ist gesendet?

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#55

Re: StringGrid mit Daten füllen und farblich Darstellen

  Alt 27. Feb 2009, 19:08
Nein, ich hole die Daten, der Puffer ist ja auch immer unterschielich gefüllt. Ich hole die Daten ja über meine Komponente mit dem Ereignis
Delphi-Quellcode:
{Daten von COM-Schnittestelle lesen} 
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
Ich weiß allerdings, leider nicht genau wann das in Kraft tritt. Aufjedenfall muss es so sein, das die Daten gehlt werden, weil die Datenmenge unterschiedlich ist.

Daher auch die diverenzen bei den Fehlenden Datensätzen. Mal alle 5 mal alle 7 ist ja unterschiedlich. Hole ich aus dem Puffer der EMA 11 Datensätze, wovon der erste und der letzte nicht vollständig sind, werden 9 in die Datenbank eingetragen. Die andern beiden entfallen.
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#56

Re: StringGrid mit Daten füllen und farblich Darstellen

  Alt 27. Feb 2009, 19:21
Hallo Jens,

es muss gelingen eine Gemeinsamkeit zwischen den Datensätzen zu ermitteln.

1.) Bestehen die Datensätze immer aus der gleichen Anzahl Zeichen?
2.) Gibt es Zeichen (Zeichenreihenfolge) am Anfang des Datensatzes und am Ende?
3.) Gibt es eine gleichbleibende Zeitdifferenz zwischen den Datensätzen?

Welche Komponente benutzt Du überhaupt?

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#57

Re: StringGrid mit Daten füllen und farblich Darstellen

  Alt 27. Feb 2009, 19:37
Ich nutzt die Komponente CPortLib (TComPort4Beta).

Ja ein Datensatz fängt immer mit 'Ereignis:' an und endet immer mit #13#10#13#10

Die einzelnen Zeilen der Datensätze sind nur mit #13#10 getrennt.

Über diese Zeichen, nehme ich den Datensatz ja auch schon auseinander. Das Problem, was ja nur da ist, das die Schnittstelle nicht bei Ereignis anfängt und bei #13#10#13#10 aufhört.

Es wird gelesen was gerade da ist.

Beispiel:

Ich lese

'atum:21.02.2009.................................. ......................
Ereignis.......................................... .......................................#13#10#13#1 0
Ereignis.......................................... .......................................#13#10#13#1 0
Ereignis.......................................... .......................................#13#10#13#1 0
Ereignis................................Extern'


Daten werden verarbeitet

Nächstes lesen

'Scharf........................................... ...
Ereignis.......................................... .......................................#13#10#13#1 0
Ereignis.......................................... .......................................#13#10#13#1 0
Ereignis.......................................... .......................................#13#10#13#1 0
Ereignis................................


Man sieht, das erste 'Extern', gehört aber noch zum 'Scharf' vom neuen lesen.

Das heißt es gehen keine Daten verloren, der Puffer wird nur nicht gleichmäßig ausgelesen.

Und da ich ja keinen Müll (Unvollständigen Datensätze) in meiner Datenbank haben möchte, entfallen somit immer der erste und letzte (Unvollständige Datensatz)
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#58

Re: StringGrid mit Daten füllen und farblich Darstellen

  Alt 27. Feb 2009, 20:17
Hallo Jens,

es geht mir um folgendes, es muss ein Event gestartet werden wenn ein vollständiger Datensatz im Buffer vorhanden ist. Dieses Event muss den Datensatz abholen und den Buffer genau um diese Zeichen löschen.

Wie groß ist der Buffer?

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#59

Re: StringGrid mit Daten füllen und farblich Darstellen

  Alt 27. Feb 2009, 20:36
Ja, so irgendwie, das Event, wäre kein Problem. Aber mir fehlen die Kenntnisse, wie ich das angehe. Wie lese ich aus der Variablen Buffer immer bis zum nächsten Datensatz, und wenn kein vollständiger mehr kommt, wieder den Puffer.

Ich denke mir das in etwa so...
Delphi-Quellcode:
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
  Daten : String;
  Satz : String;
begin
  if Buffer = 'then //Durch die Abfrage ob Buffer leer ist, wird erreicht, das nicht neu gelesen wird.
  begin
    ComPort1.ReadStr(Daten, Count);
    Buffer:=Buffer+Daten;
    Bufferverarbeitung;
  end:
end;
Jetzt müsste ich aber die Var. Buffer so lange bearbeiten, bis keine Vollständiger Datensatz mehr da ist, diesen aber unvollständigen Datensatz Zwischenspeichern, danach die Var. Buffer leeren und neu einlesen. Durch die if-Abfrage beim einlesen, ist ja schonmal gewährleistet, das Buffer wirklich leer ist, bis neu gelesen wird.

Nachdem, aber Buffer neu eingelesen worden ist, muss natürlich der dann unvollständige erste datensatz natürlich wieder dem Zwischenspeicher zugeführt werden, und als erstes abgearbeitet werden.

Ich denke die Idee ist gut, aber es fehlt mir total an der Ausführung.


Zitat:
Wie groß ist der Buffer?
Wie meinst Du das
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#60

Re: StringGrid mit Daten füllen und farblich Darstellen

  Alt 27. Feb 2009, 20:40
Hallo Jens,

wie viel Byte passen in den Buffer, oder welcher Datentype ist Buffer.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 11   « Erste     456 78     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:10 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