AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

String Konvertierung!?

Ein Thema von Daniel B · begonnen am 6. Aug 2002 · letzter Beitrag vom 7. Aug 2002
Antwort Antwort
Seite 1 von 2  1 2      
Daniel B
(Gast)

n/a Beiträge
 
#1

String Konvertierung!?

  Alt 6. Aug 2002, 20:52
Hi,

irgendwie verstehe ich die Fehlermeldung nicht:
[Fehler] Unit1.pas(101): Konstantenausdruck erwartet

Code:
procedure TForm1.SX1Click(Sender: TObject);
var
  s, t: string;
  i: integer;
begin
  s := #254#1;
  for i := 0 to 1 do
  begin
    t := IntToStr(i);
    s := s + (# + t) + #255; //Bei der Raute in der Mitte ist das Problem.
    ComPort.WriteStr(s);
  end;
end;
# + t muss so sein weil es das gleiche sein soll wie z.B. #255.
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#2
  Alt 6. Aug 2002, 20:55
... nutze doch einfach chr(t).....

Grüße,
Daniel
Daniel R. Wolf
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#3
  Alt 6. Aug 2002, 20:56
Hallo Daniel,

# ist kein gültiges Zeichen, wenn es allein steht. Du solltest nicht (# + t) sondern Chr(t) verwenden.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#4
  Alt 6. Aug 2002, 21:01
eigentlich chr(i). Weil t ja ein String ist. t bleibt also ganz weg.
Trotzdem geht das ganze nciht so wie ich es mir gedacht habe.

Ich möchte folgendes an die Serielle schicken:

#254#1#0#255
#254#1#1#255
#254#1#2#255

Irgendwie stimmt da was nicht. Mit dem Code.
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#5
  Alt 6. Aug 2002, 21:04
Hallo Daniel B,

dann muss deine Schleife aber bis 2 laufen
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#6
  Alt 6. Aug 2002, 21:07
Das ist schon Klar. Wenn funktioniert sogar bis 102. Zum Testen langt mir aber 1 oder 2.

Es geht also von:

#254#1#0#255
#254#1#1#255
.
.
.
#254#1#102#255
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#7
  Alt 6. Aug 2002, 21:09
Hallo Daniel B,

außerdem erweiterst du s bei jedem Schleifendurchlauf. Du must also die Zuweisung s := #254#1 in die Schleife mit aufnehmen!

Code:
procedure TForm1.SX1Click(Sender: TObject);
var
  s: string;
  i: integer;
begin
  for i := 0 to 1 do
  begin
    s := #254#1+Chr(i)+#255;
    ComPort.WriteStr(s);
  end;
end;
Edit: Code hinzugefügt
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#8
  Alt 7. Aug 2002, 17:28
Code:
procedure TForm1.SX0Click(Sender: TObject);
var
  s, t: string;
  i: integer;
begin
  s := #254#0;
  for i := $80 to $E7 do //<--- Hier #128 to #231 Nicht möchlich. Trotz Konvertierung.
  begin
    t := s + Chr(i) + #255;
    ComPort.WriteStr(t);
  end;
end;
Damit gehts. Vielleicht kann mir einer erklären warum es mit Hex geht, aber mit Ascii nicht. Danke.
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#9
  Alt 7. Aug 2002, 17:38
Hallo Daniel B,

der Schleifenindex erwartet ja eine Zahl, wie 128 oder $80, aber nicht #128, was als Character interpretiert wird, dessen interne Darstellung 128 ist. Du musst also das # an dieser Stelle weglassen.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#10
  Alt 7. Aug 2002, 17:39
#128 bezeichnet einen Character ('Ç') und diesen kannst Du keiner Integer-Laufvariablen zuweisen. Wenn Du das Schweinegatter ... ich meine ... die Raute ... weglässt, dann müsste es sehr wohl funktionieren.


Grüße,
Daniel
Daniel R. Wolf
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 09:51 Uhr.
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