AGB  ·  Datenschutz  ·  Impressum  







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

String auf Record übertragen

Ein Thema von Union · begonnen am 22. Okt 2004 · letzter Beitrag vom 22. Okt 2004
Antwort Antwort
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#1

String auf Record übertragen

  Alt 22. Okt 2004, 12:58
Hallo,

ich habe einen Record, in den ich Daten aus einem String eintragen möchte:

Delphi-Quellcode:
type
   SSIDBuffer = Record
      SSIDCMD : char;
      SSIDLEV : char;
      SSIDCODE : array[0..24] of char;
      SSIDPSWD : array[0..7] of char;
      SSIDSDEB : array[0..4] of char;
      SSIDSR : char;
      SSIDCMPR : char;
      SSIDREST : char;
      SSIDSPEC : char;
      SSIDCRED : array[0..2] of char;
      SSIDRSV1 : array[0..4] of char;
      SSIDUSER : array[0..7] of char;
      SSIDCR : char;
   end;

var
   cmdBuffer : string;
Das könnte ich ja einzeln machen, z.b. so:

Delphi-Quellcode:
with SSIDBuffer do
begin
   SSIDCMD := copy(cmdBuffer,1,1);
   SSIDLEV := copy(cmdBuffer,2,1);
   ...
end;
Das ist mir aber zu umständlich. Geht das irgendwie in einem Schritt ?
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: String auf Record übertragen

  Alt 22. Okt 2004, 13:00
Ja: Move(String[1], MyRecord, Length(String)); Kopiert zuverlässig alle Zeichen von String in MyRecord.
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#3

Re: String auf Record übertragen

  Alt 22. Okt 2004, 13:32
Kann sein, dass ich jetzt was falsch verstehe, aber müsste nicht auch
SSIDBuffer1.SSIDCODE:='Hallo!'; gehen?
Julian J. Pracht
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: String auf Record übertragen

  Alt 22. Okt 2004, 13:36
Zitat von Ultimator:
Kann sein, dass ich jetzt was falsch verstehe, aber müsste nicht auch
SSIDBuffer1.SSIDCODE:='Hallo!'; gehen?
Geht leider nicht, weil SSIDCMD char und 'Hallo' string ist.

@Dax: Danke. Aber manchmal steht in den ersten Feldern binärer Müll.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#5

Re: String auf Record übertragen

  Alt 22. Okt 2004, 13:37
Dann musst du den Record erst leeren:FillChar(MyRecord, 0, sizeof(MyRecord)) Kann Dein, dass die letzten zwei Parameter verdreht sind.. ich blick' da nicht immer so ganz durch..
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#6

Re: String auf Record übertragen

  Alt 22. Okt 2004, 13:38
Zitat von Union:
@Dax: Danke. Aber manchmal steht in den ersten Feldern binärer Müll.
Das ist völlig egal. Move verschiebt einfach den Speicher von a nach b. Unabhängig von irgendwelchen Datentypen.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: String auf Record übertragen

  Alt 22. Okt 2004, 13:51
Zitat von Dax:
Dann musst du den Record erst leeren:FillChar(MyRecord, 0, sizeof(MyRecord)) Kann Dein, dass die letzten zwei Parameter verdreht sind.. ich blick' da nicht immer so ganz durch..
So funktioniert es jetz immer:

Delphi-Quellcode:
FillChar(LBuffer, sizeof(LBuffer),32);
cmdBuffer := 'X1O00130013SOFTWUNION000001SOFTSERV01024BNNN002 USER1234'+#13;
Move(cmdBuffer[1], LBuffer, length(cmdBuffer));
Offensichtlich kopiert aber Move von hinten nach vorn. Deshalb darf length(cmdBuffer) nie kleiner als Sizeof(LBuffer) sein!
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  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 16:41 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