Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Sende String an comport (https://www.delphipraxis.net/181027-sende-string-comport.html)

himitsu 9. Jul 2014 12:26

AW: Sende String an comport
 
Ich seh grade was. :wall:

Zitat:

Delphi-Quellcode:
for i:=0 to length(text)-1 do
begin
  SendByte(ord(text[i]));
end;

Du solltest unbedingt mal die Bereichsprüfung in deinem Delphi aktivieren, wenn du ständig solchen Mist verbockst.

String-Indize beginnen bei 1 :!: (außer in den neuen iOS/Android-Plattformen)

Natcree 19. Jul 2014 21:58

AW: Sende String an comport
 
das heisst wenn ich es so mache klappt es ?

Delphi-Quellcode:
for i:=1 to length(text)-1 do
begin
  SendByte(ord(text[i]));
end;

EWeiss 19. Jul 2014 23:05

AW: Sende String an comport
 
Zitat:

Zitat von Natcree (Beitrag 1266060)
das heisst wenn ich es so mache klappt es ?

Delphi-Quellcode:
for i:=1 to length(text)-1 do
begin
  SendByte(ord(text[i]));
end;

Hmmm... Testen ?
Dann siehst du doch ob es klappt. ;)

gruss

Sir Rufo 20. Jul 2014 10:20

AW: Sende String an comport
 
Wenn man durch alle Elemente iterieren möchte, dann geht das immer nach folgendem Schema:
Code:
Für Index
  von <kleinster Index>
  bis <größter Index>
Ist nur kleinster Index und die Anzahl der Elemente bekannt, so kann man durch eine simple Rechnung den Wert von größter Index ermitteln:
Code:
Für Index
  von <kleinster Index>
  bis <kleinster Index> + <Anzahl der Elemente> - 1
Wenn man sich gar sehr unsicher ist und sich diese komplizierte Berechnung nicht zutraut und zudem ein Array vor sich hat, dann doch bitte so und der Drops ist gelutscht:
Delphi-Quellcode:
for LIdx := low( text ) to high( text ) do
  begin
    WhateverWith( text[LIdx] );
  end;
Schon kümmert es den Code nicht mehr, ob der Compiler 1-basierende, 0-basierende oder n-basierende Strings verwaltet.

hathor 20. Jul 2014 12:04

AW: Sende String an comport
 
Warum nicht so?

Delphi-Quellcode:
procedure SENDSTRING (Buffer: String);
var BytesWritten: DWord;
begin
  WriteFile(PortHandle,(Pchar(Buffer))^,Length(Buffer),BytesWritten,NIL);
END;

procedure TForm1.Button1Click(Sender: TObject);
var TextString : String;
begin
   TextString := 'Hallo';
   SendString (TextString+ #13);
end;

himitsu 20. Jul 2014 12:16

AW: Sende String an comport
 
Weil der Code seit 5 Jahren (Unicode) so nicht mehr richtig funktionieren könnte?

hathor 20. Jul 2014 12:22

AW: Sende String an comport
 
Er hat doch nur Delphi 7 Enterprise...

himitsu 20. Jul 2014 13:10

AW: Sende String an comport
 
Dennoch wäre es besser den Code ordentlich zu schreiben, denn genau durch solche Codes gab es die meisten Probleme bei der Unicodeumstellung.

In diesem Fall wird AnsiString verwendet, also gehört der Code auch so geschrieben.
> AnsiString und PAnsiChar


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

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