AGB  ·  Datenschutz  ·  Impressum  







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

string in array of char umwandeln

Ein Thema von Aenogym · begonnen am 4. Jul 2004 · letzter Beitrag vom 5. Jul 2004
Antwort Antwort
Seite 2 von 2     12   
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#11

Re: string in array of char umwandeln

  Alt 4. Jul 2004, 22:09
Servus !

vorweg, der variablenname "Name" ist schonmal unglücklich gewählt, da er von jedem objekt benutzt wird. Dann:
setlength(name, length(msg.username)); wozu ?

Das könntest du auch weglassen, und dann in der Schleife mit:
Delphi-Quellcode:
for i := 1 to Length(msg.username) do
    myname := myname + msg.username[i-1];
hintendrann hängen.
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: string in array of char umwandeln

  Alt 4. Jul 2004, 22:36
okay danke.

fast so hatte ich das ja schon. die möglichkeit von christian seehase klappt nicht (meldung: "invalid pointer operation"...).
langsam glaube ich aber auch, dass mein record nicht richtig ankommt.

versand vom server:
Delphi-Quellcode:
type TChatMessage = record
    command: integer;
    userid: integer;
    username: array of char;
    parameters: array of char;
  end;

//...

var rec: TChatMessage;
  serversocket1.Socket.Connections[0].SendBuf(rec, sizeof(rec));
empfang beim client (in dem TClientSocket.OnRead-Event):
socket.receiveBuf(rec, sizeof(rec) sollte doch klappen, oder?

Aenogym
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#13

Re: string in array of char umwandeln

  Alt 5. Jul 2004, 10:24
Ich fürchte nicht, SizeOf hat probleme mit dynamischen Arrays.
(ob auch mit statischen, kann ich nicht sagen)

Tipp:
Schreibe command, userid, Length(Username), Length(parameters), sowie die beiden Arrays in ein MemoryStream und versende dann den.
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Chewie

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

Re: string in array of char umwandeln

  Alt 5. Jul 2004, 10:26
Zitat von MrKnogge:
Ich fürchte nicht, SizeOf hat probleme mit dynamischen Arrays.
Wieso denn das? Sizeof funktioniert wunderbar mit dynamischen Arrays, man muss als Programmierer nur wissen, dass eine dynamische Array-Variable nichts weiter als ein zeiger auf den Speicherbereich des Arrays ist und dementsprechend 4 Bytes groß. Um die Größe, die ein dynamisches Array belegt herauszufinden, reicht (bei eindimensionalen Arrays) ein Length(DynArray) * Sizeof(DynArray[0]).
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
choose

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

Re: string in array of char umwandeln

  Alt 5. Jul 2004, 10:33
Hallo Aenogym,

aus Deinem Code lese ich, dass Du einen Record über Sockets an einen anderen Prozess (oder gar Rechner) übertragen möchtest. Bitte lies Dir den Hinweis von Chewie genau durch!

Solltest Du das Record auf diese Weise übertragen, wird lediglich ein Verweis auf die tatsächlichen Daten (und indirekt auf die von Chewie dargestellten Metadaten) im Speicherraum des Absenderprozesses übertragen, nicht aber die Daten selbst!

Das Problem, dass Dich beschäftig heißt Serialisierung und ist hier (auch im Zusammenhang mit Records) schon mehrfach diskutiert worden.
gruß, choose
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: string in array of char umwandeln

  Alt 5. Jul 2004, 14:18
danke leute.
dass das thema hier schon öfter diskutiert wurde, hab ich in der suche gesehen...
ich werde denn mal die möglichkeit mit dem memoryStream ausprobieren (obwohl ich eigentlich noch nie mit streams gearbeitet hab - schon garnicht mit memorystreams...).

aber danke euch allen, ich schaff das schon irgendwie

Aenogym
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 08:28 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