AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Smartcard auslesen, Kommandos senden
Thema durchsuchen
Ansicht
Themen-Optionen

Smartcard auslesen, Kommandos senden

Ein Thema von newuser01 · begonnen am 8. Nov 2011 · letzter Beitrag vom 9. Nov 2011
 
newuser01

Registriert seit: 30. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#25

AW: Smartcard auslesen, Kommandos senden

  Alt 9. Nov 2011, 19:18
Zitat:
kleiner Tipp?
hier einfach + '$' und gegf. +' ' rausnehmen?
Delphi-Quellcode:
Function Hexit(const s:AnsiString):String;
var
 i:Integer;
begin
 Result := '';
 for I := 1 to Length(s) do Result := Result +'$' +IntToHex(Byte(s[i]),2) +' ';
end;
in #21 hatte ich geschrieben

Zitat:
InterpretInbuffer; // Eine Prozedur die den Puffer auswertet, komplette Nachrichten extrahiert, aus dem Puffer entfernt und verarbeitet
so würde ich es machen ...
das mit den '$' hat schon mal geklappt

InterpretInbuffer meinst du so?

Delphi-Quellcode:
procedure Tfrm_main.InterpretInbuffer;
var
     i:Integer;
     part:AnsiString;
begin
     i := Pos(#10,FInBuffer);
     Memo1.Lines.Add(FInBuffer);
     while i>0 do
        begin
           Part := Copy(FInBuffer,1,i-1);
           FInBuffer := Copy(FInBuffer,i+1,Length(FInBuffer));
           Memo2.Lines.Add(Part);
           i := Pos(#10,FInBuffer);
        end;
end;
und dann so

Delphi-Quellcode:
procedure Tfrm_main.ComPortRxChar(Sender: TObject; Count: Integer);
var
s:AnsiString;
begin

ComPort.ReadStr(s,Count);
FInBuffer := FInBuffer + s; // globale variable
InterPretInbuffer;

end;
Wird aber dann in im Memo1 blos das:

Delphi-Quellcode:
;Ÿ!IRDETO ACS
;Ÿ!IRDETO ACS„Uÿ€m
angezeigt. Kannst du das ein bischen erklären mit den InterPretInbuffer ?


Nachtrag: Hexausgabe hab ich berichtigt, wenns so korrekt ist
Delphi-Quellcode:
procedure Tfrm_main.InterpretInbuffer;
var
     i:Integer;
     part:AnsiString;
begin
     i := Pos(#10,Hexit(FInBuffer));
     Memo1.Lines.Add(Hexit(FInBuffer));
     while i>0 do
        begin
           Part := Copy(Hexit(FInBuffer),1,i-1);
           FInBuffer := Copy(Hexit(FInBuffer),i+1,Length(Hexit(FInBuffer)));
           Memo1.Lines.Add(Part);
           i := Pos(#10,Hexit(FInBuffer));
        end;
end;
Gruß: Holger

[Hobby-Programmierer]

Geändert von newuser01 ( 9. Nov 2011 um 19:31 Uhr)
  Mit Zitat antworten Zitat
 


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 11:48 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