AGB  ·  Datenschutz  ·  Impressum  







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

Record <> String umwandlung

Ein Thema von SleepyMaster · begonnen am 28. Jan 2004 · letzter Beitrag vom 28. Jan 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#1

Record <> String umwandlung

  Alt 28. Jan 2004, 14:22
Hi ihrs!

Wie schaff ich das möglichst einfach (Pointer???)?

Delphi-Quellcode:
type
  TMyRecord = record
    x:boolean;
    y:boolean;
end;

function RecordToStr(input:TMyRecord):string;
begin
//???
end;

function StrToRecord(input:string):TMyRecord;
begin
//???
end;
Vielen Dank
  Mit Zitat antworten Zitat
WtF

Registriert seit: 24. Nov 2003
Ort: Nähe München
72 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Record <> String umwandlung

  Alt 28. Jan 2004, 14:32
Ich weiß nicht wie es den anderen geht aber ich verstehe deine "Frage" jetzt nicht so ganz - kannst du vieleicht im Einzeln erklären was du überhaupt machen möchtest?
Mfg
Steffen
Was meinst du als unbeteiligter eigentlich zum Thema Intelligenz ? Keep it real, Respect!
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#3

Re: Record <> String umwandlung

  Alt 28. Jan 2004, 14:39
Ich will den Record übers Netwerk versenden und dafür muss er als String vorhanden sein.

Delphi-Quellcode:
type
  TMyRecord = record
    x:boolean;
    y:boolean;
end;

var
  MyRecord:TMyRecord;
  EinString:string;

function RecordToStr(input:TMyRecord):string;
begin
//???
end;

function StrToRecord(input:string):TMyRecord;
begin
//???
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
EinString:=RecordToStr(MyRecord);
//Der String kann jetzt versendet werden
MyRecord:=StrToRecord(EinString);
end;
  Mit Zitat antworten Zitat
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#4

Re: Record <> String umwandlung

  Alt 28. Jan 2004, 14:44
Das kannst du nicht machen. Wenn ein Nullbyte im String vorkommt, ist er an dieser Stelle terminiert. Du verlierst den Rest der Daten. Ein Array of Byte wäre sinnvoller.
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#5

Re: Record <> String umwandlung

  Alt 28. Jan 2004, 14:44
Hallo SleepyMaster,

müssen es unbedingt Records sein oder kannst Du auch einen Erben von TPersistent erstellen, so dass Du mit TReader und TWriter die Serialisierung der Delphi-Komponenten verwenden kannst?
Eine Lösung mit Records wirst Du nicht auf automatischen Weg (ohne PreCompiler) hinbekommen, weil zu ihnen keine Reflektionsinformationen (RTTI) abgelegt werden.
gruß, choose
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#6

Re: Record <> String umwandlung

  Alt 28. Jan 2004, 14:46
@choose

Wenn du mal ein kurzes Beispiel gibst wäre es auch mit TPersistent ok!

Vielen Dank schon mal!
  Mit Zitat antworten Zitat
WtF

Registriert seit: 24. Nov 2003
Ort: Nähe München
72 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Record <> String umwandlung

  Alt 28. Jan 2004, 14:54
Ich vogel wollte dir gerade dir Functionen mit IF sätzen schreiben
Benutz einfach strtobool und booltostr, damit sollte es funzen.
Mfg
Steffen
Was meinst du als unbeteiligter eigentlich zum Thema Intelligenz ? Keep it real, Respect!
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#8

Re: Record <> String umwandlung

  Alt 28. Jan 2004, 14:57
Ich will den kompletten record auf einmal umwandeln. (Sind über 30 Bools drinne)
  Mit Zitat antworten Zitat
Currywurst

Registriert seit: 17. Nov 2003
11 Beiträge
 
#9

Re: Record <> String umwandlung

  Alt 28. Jan 2004, 15:00
ihr immer mit euren nullen im string, delphi strings vertragen ohne probleme.

sofern du das senden ordentlich anstellst (womit eigentlich, kaum zu glauben das nur strings zu senden gehen!), und dein record nur einfache typen enthält versuch ma einfach so

Code:
function RecordToStr(const input: TMyRecord): String;
begin
  SetLength(Result, SizeOf(TMyRecord));
  Move(input, Result[1], SizeOf(TMyRecord));
end;

function StrToRecord(const input: String): TMyRecord;
begin
  //if Length(input) = SizeOf(TMyRecord) then
  Move(input[1], Result, SizeOf(TMyRecord));
end;
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#10

Re: Record <> String umwandlung

  Alt 28. Jan 2004, 15:24
@Currywurst

Super!!! So gehts ohne Probleme!

Vielen Dank!
  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 18:56 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