AGB  ·  Datenschutz  ·  Impressum  







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

Pchar einen Ordinalwert zuweisen

Ein Thema von Moony · begonnen am 29. Sep 2004 · letzter Beitrag vom 29. Sep 2004
Antwort Antwort
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#1

Pchar einen Ordinalwert zuweisen

  Alt 29. Sep 2004, 14:29
Hallo Leute.

Ich möchte bei mir code einen ausgelesenen Ordinalwert aus einer Datei in einem Pchar speichern. Ist das überhaupt möglich?wenn j, welche Möglihckeiten gibts den da?

Danke und gruß, moony
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Pchar einen Ordinalwert zuweisen

  Alt 29. Sep 2004, 14:35
Wandele ihn erst mit IntToStr in einen String um, dann einen Cast mit PChar.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Pchar einen Ordinalwert zuweisen

  Alt 29. Sep 2004, 14:43
was ist denn ein Cast?

gruß,Moony
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#4

Re: Pchar einen Ordinalwert zuweisen

  Alt 29. Sep 2004, 14:47
Ein Cast ist der Vorgang, einen Datentyp in einen anderen umzuwandlen, ohne eine Funktion zu benutzen, also sowas:
Delphi-Quellcode:
var c: Cardinal; b: Byte;
b := Byte(c);
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Pchar einen Ordinalwert zuweisen

  Alt 29. Sep 2004, 14:53
ok,das verstehe ich.aber was ich immer noch ganz verstehe, wie ich dann dieses Byte in den Pchar umwandle?

Zitat:
Quellcode: markieren
var c: Cardinal; b: Byte;
b := Byte(c);
wofür ist denn der Cardinal da?

gruß,moony
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#6

Re: Pchar einen Ordinalwert zuweisen

  Alt 29. Sep 2004, 14:56
Erstmal: Ein Delphi-Referenz durchsuchenCardinal ist ein Datentyp, der von 0 bis 2^32-1 reicht, also der gröte Integer. Und wie du das Byte in den PChar bekommst, ist einfach:
Delphi-Quellcode:
var p: PChar; b: Byte;
GetMem(p, 1);
p^ := b;
Oder alternativ:
Delphi-Quellcode:
var p: PChar; b: Byte;
GetMem(p, 1);
p := PChar(IntToStr(b));
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Pchar einen Ordinalwert zuweisen

  Alt 29. Sep 2004, 14:58
Also folgendermaßen: Du hast eine Zahl, einen Byte-Wert. Ein PChar ist, wie der Name schon sagt, ein Zeiger auf einen Char. Dieser wird üblicherweise zur Darstellung von Strings verwendet, u.a. zwecks Kompatibilität zu C. Und zwar hat man einen Zeiger auf das erste Zeichen, der String geht solange weiter, bis das erste Byte 0 ist.

Nun wandelst du mittels Delphi-Referenz durchsuchenInttoStr deine Zahl in einen String um und wandelst diesen String in einen PChar um. Da Strings zu PChars kompatibel sind, reicht eine einfache Typumwandlung (=Typecast):

Delphi-Quellcode:
var
  b: Byte;
  s: String;
  p: PChar;
begin
  b := 45;
  s := InttoStr(b);
  p := PChar(s);
end;
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Pchar einen Ordinalwert zuweisen

  Alt 29. Sep 2004, 15:37
Danke allen.hab ich auch gemacht und es funktioniert.

gruß, moony
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
Antwort Antwort


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:16 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