![]() |
Re: StringGrid mit Daten füllen und farblich Darstellen
Hallo Jens,
am Anfang der Aufzeichnung ClearBuffer. Bis bald Chemiker |
Re: StringGrid mit Daten füllen und farblich Darstellen
Wie meinst Du das mit ClearBuffer.
Meinst du meine Glob. Var. oder den InputBuffer der Schnittstelle. Ich hatte jetzt einfach die Var. Buffer leergemacht, wenn ein falscher Anfangsdatensatz da ist, somit hatte ich auch erschlagen, das wenn ich an der Hardware einen RESET durchführen, dieser Müll erst gar nicht geschrieben wird.
Delphi-Quellcode:
{Daten von COM-Schnittestelle lesen}
procedure TForm1.ComDataPacket1Packet(Sender: TObject; const Str: string); begin Buffer := Str; if Pos(':', Buffer) = 1 then Bufferverarbeitung end; |
Re: StringGrid mit Daten füllen und farblich Darstellen
Hallo Jens,
ClearBuffer vom TComPort um den Input buffer zu löschen. Bis bald Chemiker |
Re: StringGrid mit Daten füllen und farblich Darstellen
Hallo,
habe mal noch ne Frage zum Thema, ich habe mal noch eine weitere Zentrale programmiert, klappt auch mittlerweiel sehr gut diese Auswertung. Mich würden allerdings mal ein paar Zeichen interessieren. 'Ereignis : 9 B: 1/ 0 '#$A'Bereich unscharf 03.APR.09 19:51:16'#$A'Wohnhaus Jens Hartmann '#$A'Makro 2 '#$A#$A#$1B'P'#1#$1B'R' Das ist mein aktueller Datensatz. 40 Zeichen pro Zeile, also war die Auswertung eigendlich total einfach, aber was für eine Bedeutung haben die letzten '#$A' müsste ja der Zeilenumbruch sein, aber was Bedeutet der Rest. '#$1B'P'#1#$1B'R' Gruß Jens. PS: Gibt es dafür irgendwie ne Tabelle oder so. Kann mir ja noch öffters passieren. |
Re: StringGrid mit Daten füllen und farblich Darstellen
Hallo Jens,
die Zeichen könnte irgendwelche Befehle sein, die von der Zentrale abgesetzt werden. Vielleicht steht etwas in der Dokumentation von Zentrale über die Bedeutung dieser Zeichen. Bis bald Chemiker |
Re: StringGrid mit Daten füllen und farblich Darstellen
Leider nicht,
ich dachte, es gäbe irgendwie so ne Tabelle, wo die Übersetzung zu sehen wäre. Weil '#$A' ist ja z.B. #13 und #13 ist ja ENTER also Zeilenvorschub, oder war es #10. Naja aufjedenfall irgendwie so. Gruß Jens |
Re: StringGrid mit Daten füllen und farblich Darstellen
1B wäre ja das Escapezeichen. Was die da bedeuten kann man so natürlich nicht sehen.
![]() |
Re: StringGrid mit Daten füllen und farblich Darstellen
Danke schön,
diese Tabelle wird mir bestimmt bei meiner weiteren Arbeit weiterhelfen. Gruß Jens |
Re: StringGrid mit Daten füllen und farblich Darstellen
Hab die Tabelle jetzt mal durchgesehen, wenn ich das richtig sehe, müssten die Zeichen folgende Bedeutung haben
#$ Soll heißen, da kommt ein ASCII Zeichen A Soll heißen Zeilenvorschub D Soll heißen CR (ich vermute die Taste Ctrl) Allerdings versteh ich den Sinn nicht, was die macht. 1B Soll heißen Escape, was auch irgendwie keinen Sinn ergibt. Das bedeutet aber für mich auch, da diese immer am Ende eines Datensatzes sind, könnte ich mir das ja zum nutzen machen, und damit mein Datensatzende feststellen. Mein Problem, liegt aber jetzt dabei, das meine Komponente dies nicht akzeptiert. Gebe ich als Satzende einen String ein, z.B. 'Ereignis' als STOPSTRING (Eigenschaft von TCOMPacket), so wird dieser ausgewertet und es klappt. Leider muss ich bei dieser Methode, das Wort Ereignis, meinem Datensatz allerdings wieder zufügen, weil der STOP´STRING nicht mehr übergeben wird. Von Vorteil daher wäre, das wirkliche Satzende zu verwenden. Trage ich allerdings jetzt folgende Varianten als STOPSTRING ein, wird die Funktion nicht ausgeführt. VAR1: #$D#$A#$A#$1B (so kann ich die Daten im Debugmodus lesen) VAR2: DAA1B (wären ja eigendlcih die Zeichen) (ASCII-Format) Allerdings, ist mir klar warum beide nicht gehen, aber wie bringe ich den dann meine Komponente dazu, diese Werte zu lesen, wie Zeilenvorschub. Mein Problem besteht ja darin, diese Funktionen als String zu schreiben. Es muss doch eine Möglichkeit geben, wie z.B. #$ als Vorzeichen von A D und 1B um da zu realisieren. Vieleicht kann mir ja mal jemand sagen wie. Gruß Jens |
Re: StringGrid mit Daten füllen und farblich Darstellen
#13#10, also hexadezimal #$D#$A, ist unter Windows der Zeilenumbruch. Um genau zu sein ein Relikt aus Zeiten der Schreibmaschine / Fernschreiber. Einmal Wagenrücklauf (des Wagens der Schreibmaschine) und einmal Zeilenvorschub (des Papiers um eine Zeile).
|
Re: StringGrid mit Daten füllen und farblich Darstellen
Ja, das habe ich auch gedacht,
Sorry aber das war die vergessene Variante 3. Auch damit kann die Kompo scheinbar nichts anfangen. Gruß Jens |
Re: StringGrid mit Daten füllen und farblich Darstellen
Wie hast du es denn geschrieben? Als String?
Delphi-Quellcode:
Das wäre auch Quatsch, weil dann ja nicht diese 4 Zeichen mit den entsprechenden Hexadezimalwerten sondern die Zeichen #, $, D, usw. in dem String stehen...
StopString := '#$D#$A#$A#$1B';
So sollte es dann eigentlich gehen:
Delphi-Quellcode:
StopString := #$D#$A#$A#$1B;
|
Re: StringGrid mit Daten füllen und farblich Darstellen
Ja,
genau so habe ich es gemacht, (siehe Anhang). Es ist aber tatsächlich so, das jede Art von String erkannt wird, und die funktion gegeben ist. Das ist absolut kein Problem. Ich habe das mittlerweile, (Du müsstest mein Projekt ja mittlerweile kenne, du hast ja schließlich den Hauptanstoß für die Lösung gegeben) mit einigen Zentrale gemacht, teilweise wird mir auch ein schöner StopString geliefert, da ist das dann kein Problem, aber hier ist das halt doof, weil ich keinen gleichen Stop habe, außer die ASCII-Zeichen. Also, habe ich bislang halt den START des jeweiligen Datensatzes verwendet, was aber halt nicht so schön ist. Gruß Jens |
Re: StringGrid mit Daten füllen und farblich Darstellen
Liste der Anhänge anzeigen (Anzahl: 2)
Sorry,
hier auch der Anhang Gruß Jens |
Re: StringGrid mit Daten füllen und farblich Darstellen
Hallo nochmal,
nutzt den eventuell jemand die Komponente oder hat jemand schon mal sowas in der Art benötigt. Vieleicht muss man ja irgendein Sonderzeichen oder so angeben, damit die Zeichen für Zeilenvorschub und so erkannt werden. :gruebel: Gruß Jens |
Re: StringGrid mit Daten füllen und farblich Darstellen
Hallo Jens,
welche Delphi-Version hast Du im Einsatz? Bis bald Chemiker |
Re: StringGrid mit Daten füllen und farblich Darstellen
CodeGear Rad Studio Delphi 2007 Professional
Gruß Jens |
Re: StringGrid mit Daten füllen und farblich Darstellen
Hallo Jens,
mal so versuchen: ^M^J^J^A'B '. Bis bald Chemiker |
Re: StringGrid mit Daten füllen und farblich Darstellen
Danke Chemiker,
werde ich gleich sofort testen. Vieleicht bis später, oder so. Gruß Jens |
Re: StringGrid mit Daten füllen und farblich Darstellen
Hallo Chemiker,
leider funktioniert das genau so wenig. Ich könnte es ja auch so lassen, wie es momentan ist, aber es gefällt mir halt nicht so richtig, und die Abfrage auf das Ende des String´s, klingt ja auch im allgemeinen logisch bei STOPSTRING. Das Problem ist halt, ich habe es bis jetzt bei jedem System hinbekommen, da am Ende immer was identisches steht. Leider hier nicht. Naja, wenn keiner mehr ne Idee hat, werde ich es erstmal so lassen. Vieleicht hat ja irgendwann jemand mal das Problem, oder ich wechsel mal irgendwann die Komponente. [EDIT] Ein weiteres Problem, was daraus entsteht, ist natürlich auch das, das ein Ereignis immer im Speicher steht, und erst angezeigt wird, wenn das nächste kommt. Somit steht in meiner Software nie das aktuellste Ereignis.[EDIT END] Gruß Jens |
Re: StringGrid mit Daten füllen und farblich Darstellen
Yes, we can...
Ich habe es hinbekommen. Ganz kurz wie ich es gelößt habe. Ich habe als STARTSTRING jetzt 'Ereignis' gesetzt, und der Kompo gesagt. INCLUDESTRING := TRUE. Diese Eigenschaft realisiert, das der START oder STOP String mit geschrieben wird. Dann ist mir eben aufgefallen, das bei dieser Zentrale der Datensatz immer '169' Zeichen lang ist, und die letzten Zeichen die ja meine Problem waren, nicht benötigt werden. Daraus folgt, Somit konnte ich die Eigenschaft SIZE von meiner Kompo auf 165 setzen,so das jeder Datensatz auch sofort geschrieben wird, und nicht erst auf den nächsten gewartet werden muss. So, ich möchte mich trotzdem nochmal bei allen bedanken und sage bis später mal. Gruß Jens |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz