Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String -> Byte - wie geht das? (https://www.delphipraxis.net/20166-string-byte-wie-geht-das.html)

Akut-Programming 14. Apr 2004 11:06


String -> Byte - wie geht das?
 
Ist es mir möglich einen String in einen Byte Wert zu konvertieren?? ich hatte hier in der DP schon gesucht, aber wenn dann find ich nur was über Byte-Arrays :gruebel: Könnte mir da bitte jmd. helfen??

Luckie 14. Apr 2004 11:20

Re: String -> Byte - wie geht das?
 
Ein Byte ist auch nur ein Integer. Hat es jetzt *klick* gemacht? :zwinker:

braingrenade 14. Apr 2004 11:22

Re: String -> Byte - wie geht das?
 
Moin !

Meine Idee dazu :

Delphi-Quellcode:
type
  Tbuf = record
    case boolean of
      true : (ch : char);
      false : (b : byte);
    end;


function chartobyte(ch : char) : byte;
var buf : Tbuf;
begin
buf.ch := ch;
result := buf.b
end;


....
for i := 0 to length(string1) do
begin
bytearray[i] := chartobyte(string1[i]);
end;
....
Is jetzt zwar nich getestet, aber sollte funktionieren.


edit: Verdammt, das teil is ja viel zu kompliziert :wall: :mrgreen: geht vieeeeel einfacher !

Luckie 14. Apr 2004 11:24

Re: String -> Byte - wie geht das?
 
Oh Gott, ich dachte ich käme drumrum: StrToInt. :roll:

neolithos 14. Apr 2004 11:32

Re: String -> Byte - wie geht das?
 
Was willst du genau?

Einen String in die einzelnen Bytes zerlegen aus dem er besteht!

Delphi-Quellcode:
var ab : array [0..1023] of byte;

Move(ab, PChar(sText)^, Length(sText));
Oder

Eine Zeichenfolge die eine Zahl repräsentiert in einen Integer wandeln.

Delphi-Quellcode:
i := StrToInt('123');

Akut-Programming 14. Apr 2004 11:37

Re: String -> Byte - wie geht das?
 
Zitat:

Zitat von Luckie
Ein Byte ist auch nur ein Integer. Hat es jetzt *klick* gemacht? :zwinker:

Ja das hatte ich auch schon versucht, nur da ich einen längeren String übergebe, meint er eben, das 'TestString' kein gültiger Integerwert ist..

Luckie 14. Apr 2004 11:40

Re: String -> Byte - wie geht das?
 
Ist es ja auch nicht. Was soll den 'TestString' für eine Zahl ergeben? :roll:

Ein gültiger "Integer-String" wäre: '25697' zum Beispiel.

Wheelie 14. Apr 2004 11:44

Re: String -> Byte - wie geht das?
 
Zitat:

Zitat von Akut-Programming
Zitat:

Zitat von Luckie
Ein Byte ist auch nur ein Integer. Hat es jetzt *klick* gemacht? :zwinker:

Ja das hatte ich auch schon versucht, nur da ich einen längeren String übergebe, meint er eben, das 'TestString' kein gültiger Integerwert ist..

Byte: 0 .. 255

Wenn dein String also folgendermaßen aussieht: '350' gibt es logischerweise Probleme, da der Wertebereich des Datentyps Byte überschritten wird.

Akut-Programming 14. Apr 2004 11:49

Re: String -> Byte - wie geht das?
 
Zitat:

Zitat von Luckie
Ist es ja auch nicht. Was soll den 'TestString' für eine Zahl ergeben? :roll:

Ein gültiger "Integer-String" wäre: '25697' zum Beispiel.

Ja das ist mir auch schonklar, deshalb konnts ja mit StrToInt nicht gehen. Der Hintergrund dießer ganzen Geschichte ist der... bei dießem Thread gings mir umne Verschlüsselung von nem Text. Diesen kann ich mit Hilfe des werts iKey variabel verschlüsseln. (wird zumindest in dem Thread geschr.) iKey muss aber vom typ Byte sein, damits geht.

Akut-Programming 15. Apr 2004 06:51

Re: String -> Byte - wie geht das?
 
Hat keiner ne Idee, wie ich das Problem lösen könnte?? :cry:

Akut-Programming 15. Apr 2004 08:39

Re: String -> Byte - wie geht das?
 
hmm, naja, dann komm ich wohl erstma nicht drumrum ne feste Zahl im Code für den Wert zuvergeben. :gruebel: Oder ich lass mir ne Vergleichszahl ausn System auslesen, was weiß ich CPUTakt+Seriennummer oder so und weiße dieße iKey zu. Dann könnte man die Datei nur auf dem PC lesen, wo man sie verschlüsselt gespeichert hat. hmm... :coder: na mal gucken

Gruß,

neolithos 15. Apr 2004 08:42

Re: String -> Byte - wie geht das?
 
Vielleicht hilft dir das:

Delphi-Quellcode:
sText := 'Dies ist ein sinnloser Text';
sKey := 'Hallo Welt';
sCode := '';
iKeyIndex := 1;

for i := 0 to Length(sText) do
    begin
      sCode := sCode + Chr(Ord(sText[i]) xor Ord(sKey[iKeyIndex]));
      Inc(iKeyIndex);
      if iKeyIndex > Length(sKey) then
         iKeyIndex := 1;
    end;
Achtung: Die Zeichenkette kann mit unter nicht dargestellt werden, da Sie #0-Zeichen enthalten könnte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:43 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