Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - bei Stringvariable+'text' wird nur die StrV ausgeben


IhopeonlyReader - So 06.05.12 18:07
Titel: bei Stringvariable+'text' wird nur die StrV ausgeben
Guten Tag,
ich programmiere zur Zeit ein Spiel und würde gerne für jeden Benutzer einzeln Speichern, den Benutzernamen bekomm ich durch die Function:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
function GetCurrUserName: string;
var   Size: DWORD;
begin
  Size := MAX_COMPUTERNAME_LENGTH + 1;
  SetLength(Result, Size);
  if GetUserName(PChar(Result), Size) then
    SetLength(Result, Size)
  else
    Result := '';
end;


wenn ich jetzt einen Pfad angeben will (mit 'C:\Users\'+GetCurrUserName+'weiterpfad') so wird als Fehlermeldung ausgeben, dass C:\Users\richtigerBenutzername nicht erstellt werden kann :( Es wird also alles was nach GetCurrUsername kommt einfach abgeschnitten.. wieso?

ich habe es auch mit Showmessage probiert, hier wurde ebenfalls ALLES was nach dem GetCurrUserName kam abgeschnitten.
showmessage(GetCurrUserName+', wie geht es dir?');
-> Meldung mit: Benutzernamen (der Benutzername stimmt !) wurde ausgegeben, der String danach nicht mehr...
wisst ihr warum?


Delete - So 06.05.12 18:31

Guck dir das mal im Debugger an. Ich gehe davon aus, dass hinter dem Benutzernamen noch ein Stringendezeichen steht: SetLength(Result, Size-1)


Narses - So 06.05.12 18:49

Moin!

user profile iconIhopeonlyReader hat folgendes geschrieben Zum zitierten Posting springen:
wenn ich jetzt einen Pfad angeben will (mit 'C:\Users\'+GetCurrUserName+'weiterpfad')
Dieser Pfad existiert z.B. auf meinem Rechner nicht und ich wäre auch ziemlich böse, wenn er ungefragt angelegt würde. :|

Ich glaube, du suchst eher sowas hier [http://www.delphi-library.de/viewtopic.php?t=9428&start=0&postorder=asc]? Da könnte man dann z.B. das Anwendungsdatenverzeichnis nehmen und dort einen Ordner für deine Anwendung anlegen und zum Speichern der Daten/Einstellungen verwenden. :les: :idea:

cu
Narses

Moderiert von user profile iconMartok: Diskussion darüber abgetrennt nach [url=http://www.delphi-forum.de/viewtopic.php?t=109276]hier[/url]