Einzelnen Beitrag anzeigen

dragi

Registriert seit: 22. Jul 2003
198 Beiträge
 
Delphi 2005 Personal
 
#1

Char nach BCD konvertieren?

  Alt 29. Apr 2005, 19:36
Hallo,

Wie in einem Thread weiter unten schon erwähnt lese ich Daten aus meiner Wetterstation über RS232 aus. Ich bekomme von meiner Wetterstation 6 Byte in denen Werte im BCD Format vorliegen. Diese 6 Byte lese ich in ein array of Char weil mit Async Pro die Methode GetChar zur Verfügung stellt. Wie kann ich denn nun die einzelnen Chars konvertieren? Muss ich die nicht von Char nach BCD und von BCD nach Integer konvertieren? Es muss eine Zahl am Ende rauskommen.

So sieht mein Code aus. Es sollen 6 Byte zurückkommen aus denen sich uhrzeit und Datum dastellen lassen;

Code:
procedure TForm1.ComPortTriggerAvail(CP: TObject; Count: Word);
var
  i, j, Temp: Integer;
  test: array of Char;
begin
  SetLength(Test,Count);
  for i := 1 to count do
    test[i - 1] := ComPort.GetChar;
  for j := 0 to length(test) - 1 do
  begin
    Temp := BCDToInteger(StrToBcd(Test[j]), True); // <----Hier kommt der Fehler direkt beim ersten Durchlauf der Schleife:
    List.Add(IntToStr(Temp));                     //      ... ist kein gültiger BCD-Wert! ...ist ein kleines Viereck,
  end;                                            //      also ein nicht druckbares Zeichen denke ich
  List.SaveToFile(ExtractFilePath(ParamStr(0))+ 'temp.txt');
end;
Hat jemand eine Idee?

Vielen Dank

Dragi
  Mit Zitat antworten Zitat