Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi String über Serielle Schnittstelle (https://www.delphipraxis.net/76459-string-ueber-serielle-schnittstelle.html)

marabu 16. Jun 2007 12:32

Re: String über Serielle Schnittstelle
 
Hallo,

alle von dir benötigten Informationen finden sich in deinem Thread:

Delphi-Quellcode:
sendbyte (Length(Edit1.Text));
Grüße vom marabu

PS: Mit deinem Nick auf einer Visitenkarte stehen dir in der IT-Welt Türen und Tore offen ...

Der_Unwissende 16. Jun 2007 12:38

Re: String über Serielle Schnittstelle
 
Hi, wie genau überträgst Du denn im Moment was?

Wenn Du die Anzahl der Stellen überträgst, dann nochmal der Hinweis darauf, dass Du hier Byteweise verschickst. Hast Du <= 255 Stellen, kannst Du einfach die Länge in ein Byte casten - Byte(Length(s)) - und verschicken. Bei größeren Zahlen musst Du auf Seiten des Empfängers erst die Zahl aus mehreren Bytes zusammensetzen (mittels Shift-Operationen und logischem Oder).

Ok, sehe gerade dass der marabu wieder schneller war!

Gruß Der Unwissende

GierigeSau 16. Jun 2007 16:28

Re: String über Serielle Schnittstelle
 
Hey, es klappt noch nicht... ich versteh das nicht. Die Zahlen einzeln übertragen macht das Prog, aber obwohl ich vorher
Delphi-Quellcode:
za := Byte(length(Edit1.Text));
sendbyte(za);
mach, klappt es nicht, aber dies ist auch nicht die einzigste möglichkeit die ich getestet habe, habe schon alles probiert...
Delphi-Quellcode:
sendbyte(length(Edit1.Text));
oder
Delphi-Quellcode:
za := length(Edit1.Text);
sendbyte(za);
ich versteh im moment nur noch bahnhof...

GierigeSau 16. Jun 2007 16:46

Re: String über Serielle Schnittstelle
 
Bitte nicht schlagen... :wall: :wall: :wall:
Zum merken für mich selber:"
Man sollte zum überprüfen des Source nicht einen 2. PC anschließen, mit einem Terminal-Prog was nur "ganz-zahlen" und keine "Bytes" darstellt! :coder2: "

*autsch, das tat weh...

Trotzdem Danke an euch. :dp: :spin2:

marabu 16. Jun 2007 16:48

Re: String über Serielle Schnittstelle
 
Hallo,

wenn die Übertragung mit dem Code aus Beitrag #6 funktioniert, dann empfehle ich dir folgende kleine Änderung:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  s: ShortString;
begin
  if Edit1.Text <> '' then
  begin
    // Damit nicht bei jedem Zugriff auf ein Zeichen von Edit1.Text
    // Windows in Aktionismus ausbricht (ist gar nicht so einfach an diesen Text heran
    // zu kommen), speichern wir den Text in einen ShortString um.
    // So erhalten wir auch gleich das Längenbyte.
    s := Edit1.Text;
    // über den ganzen String iterieren
    // Achtung, Strings sind 1 indiziert, dynamische Arrays beginnen bei 0!

    // s[0] enthält die Längeninformation ...
    for i := 0 to length(s) do
    begin
      // Edit1.Text[i] = das i-te Zeichen aus Edit1.Text
      // ord(ZEICHEN) = der Ordinale Wert des ZEICHEN
      SendByte(Ord(s[i]));
    end;
  end else
  begin
    ShowMessage ('Telefon-Nummer eingeben!');
  end;
end;
Freundliche Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:29 Uhr.
Seite 2 von 2     12   

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