AGB  ·  Datenschutz  ·  Impressum  







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

Datentypen von String zu Byte und wieder zurück

Ein Thema von Graw · begonnen am 27. Apr 2017 · letzter Beitrag vom 6. Jun 2017
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#11

AW: Datentypen von String zu Byte und wieder zurück

  Alt 27. Apr 2017, 23:35
Ja, Natürlich kann man nur auf ganze Bytes zugreifen und Delphi rundet immer auf.
Ein Boolean kennt auch 1x False und 255x True

Aber blöd wird es, wenn man die Bereichsprüfung mal aktiviert und dann der Typ zu klein deklariert ist.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.476 Beiträge
 
Delphi 12 Athens
 
#12

AW: Datentypen von String zu Byte und wieder zurück

  Alt 28. Apr 2017, 09:13
Das ist sogar noch witziger:
Delphi-Quellcode:
type
  TSet = set of 0..3;

procedure Main;
var
  s: TSet;
  I: 0..3;
begin
  s := [1,3];
  for I in s do
  begin // <== BreakPoint 1
    Writeln(I); // <== BreakPoint 2
  end;
end; // <== BreakPoint 3
BreakPoint 1 wird 8x durchlaufen! BreakPoint 2 erwartungsgemäß nur 2x.

Bei den Durchläufen vor dem ersten Writeln hat I nicht mal einen definierten Wert.
Miniaturansicht angehängter Grafiken
28-04-_2017_09-08-28.png  
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Graw

Registriert seit: 26. Apr 2017
77 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Datentypen von String zu Byte und wieder zurück

  Alt 28. Apr 2017, 10:43
Leider bekomm ich es doch nicht ans laufen...

Wenn ich der Funktion feste Werte übergebe funktioniert sie wunderbar.
Code:
PBuf := Convert('00003FFFC000','00003FFFC000');
Wenn ich aber meine Buffer der Funktion übergebe kommt nichts aus ihr raus.
Code:
BEGIN

          PBuf1 := Copy(PBuf10,13,Length(PBuf10)-3);
          PBuf2 := Copy(PBuf20,13,Length(PBuf20)-3);


          if (length(PBuf1) = length(PBuf2)) then
          begin
           PBuf := Convert(PBuf1,PBuf2);
           PBufSend := PBuf;        
          end;
         
END;
Könnt ihr mir sagen was ich da falsch mache?
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
755 Beiträge
 
#14

AW: Datentypen von String zu Byte und wieder zurück

  Alt 28. Apr 2017, 10:59
Wie sind denn die PBuf.. deklariert und was sagt der Debugger?
  Mit Zitat antworten Zitat
Graw

Registriert seit: 26. Apr 2017
77 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Datentypen von String zu Byte und wieder zurück

  Alt 28. Apr 2017, 11:06
Ist alles als String deklariert
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
755 Beiträge
 
#16

AW: Datentypen von String zu Byte und wieder zurück

  Alt 28. Apr 2017, 11:10
Dann setze mal einen Haltepunkt und schau dir an was in den Strings, die du übergibst, drin steht.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.476 Beiträge
 
Delphi 12 Athens
 
#17

AW: Datentypen von String zu Byte und wieder zurück

  Alt 28. Apr 2017, 11:20
PBuf1 := Copy(PBuf10,13,Length(PBuf10)-3);
Was soll damit erreicht werden? Vorausgesetzt, PBuf10 ist als string deklariert, dann versuchst du hier 9 Zeichen mehr zu kopieren als vorhanden sind. Delphi fängt das natürlich ab, aber der Code riecht nach einem Fehler.

Eventuell versuchst du ja auch nur die ersten 12 und die letzen 2 oder 3 Zeichen abzuschneiden? Dann ist das aber der falsche Befehl.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Graw

Registriert seit: 26. Apr 2017
77 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: Datentypen von String zu Byte und wieder zurück

  Alt 28. Apr 2017, 11:36
Ja das Stimmt.. Ich will von dem String die ersten 12 Zeichen wegschneiden und am Ende die letzten drei.


Ist es so besser?

Code:
BEGIN

          Delete(PBuf10,0,12);
          Delete(PBuf20,0,12);
          Delete(PBuf10,length(PBuf10)-3,3);
          Delete(PBuf10,length(PBuf20)-3,3);


          if (length(PBuf10) = length(PBuf20)) then
          begin
           PBuf := Convert(PBuf10,PBuf20);
           PBufSend := PBuf;      
          end;
         
END;

Es sind alle Buffer mit string deklariert. Die Strings sind alle 60 Zeichen lang.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.476 Beiträge
 
Delphi 12 Athens
 
#19

AW: Datentypen von String zu Byte und wieder zurück

  Alt 28. Apr 2017, 12:04
Ist es so besser?
Welche Delphi-Version und welche Zielplattform?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Graw

Registriert seit: 26. Apr 2017
77 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Datentypen von String zu Byte und wieder zurück

  Alt 28. Apr 2017, 12:07
Delphi 2010 Windows 7
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 22:29 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