Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi String ist nicht ereiterbar!! (https://www.delphipraxis.net/156579-string-ist-nicht-ereiterbar.html)

TitanNano 7. Dez 2010 19:00

String ist nicht ereiterbar!!
 
Hallo,
Ich habe mir aus dem Internet eine Funktion geholt, die den aktuellen Benutzer ausliest, das klappt auch super, doch kann ich wenn ich den Namen irgend wo verwende, keinen weiteren String anhängen. Das bei allen Funktionen so, die ich gefunden habe, was genau muss ich den mit dem String denn noch machen, bevor ich ihn verwende??

mfg. TitanNano

mkinzler 7. Dez 2010 19:01

AW: String ist nicht ereiterbar!!
 
Mit welche Funktion?
Schau dir mal StrPas() an

TitanNano 7. Dez 2010 19:03

AW: String ist nicht ereiterbar!!
 
meinst du die Funktion die den Nutzer Namen aus liest??

Delphi-Quellcode:
function TForm3.GetUser: 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;

wicht 7. Dez 2010 20:02

AW: String ist nicht ereiterbar!!
 
So solltes klappen..


Delphi-Quellcode:
function TForm3.GetUser: string;
var
  Size : DWORD;
begin
  Size := MAX_COMPUTERNAME_LENGTH + 1;
  SetLength(Result, Size);
  if GetUserName(PChar(Result), Size) then
  begin
    SetLength(Result, Size);
    Result := Result + ' ist der aktuelle Benutzer!'; // <<------
  end else
    Result := '';
end;
HTH

TitanNano 8. Dez 2010 16:59

AW: String ist nicht ereiterbar!!
 
tut mir Leid aber es hat sich nicht geändert!!

Sir Rufo 8. Dez 2010 17:01

AW: String ist nicht ereiterbar!!
 
... und so ... ?
Delphi-Quellcode:
function TForm3.GetUser: string;
var
  Size : DWORD;
  buffer : string;
begin
  Size := MAX_COMPUTERNAME_LENGTH + 1;
  SetLength( buffer, Size);
  if GetUserName(PChar( buffer ), Size) then
  begin
    SetLength( buffer, Size);
    Result := buffer;
  end else
    Result := '';
end;

TitanNano 8. Dez 2010 17:03

AW: String ist nicht ereiterbar!!
 
ne, das hab ich selber auch Grad probiert.

pmoegenb 8. Dez 2010 17:21

AW: String ist nicht ereiterbar!!
 
Oder so:
Delphi-Quellcode:
function GetUserID: string;
var
   szUserName : array[0..99] of Char;
   dwSize    : DWORD;
begin
     FillChar(szUserName, SizeOf(szUserName), 0);
     dwSize := SizeOf(szUserName);
     GetUserName(szUserName, dwSize);
     Result := UPPERCASE(szUserName);
end;

shmia 8. Dez 2010 17:46

AW: String ist nicht ereiterbar!!
 
Hier erst mal eine funktionierende Funktion um den lokalen Benutzer abzufragen:
(MAX_COMPUTERNAME_LENGTH ist nicht gleich der max. Länge des Benutzers)
Delphi-Quellcode:
function GetLocalUserName: string;
var
  Count: DWORD;
begin
  Count := 256 + 1; // UNLEN + 1
  SetLength(Result, Count);
  if GetUserName(PChar(Result), Count) then
    StrResetLength(Result)
  else
    Result := '';
end;
Natürlich würde man diese Funktion niemals ändern nur um noch einen Text hinzuzufügen!
Den Benutzernamen um irgendeinen Hinweistext zu erweitern ist trivial.
Goldene Regel bei der Stringverarbeitung:
Wenn man Probleme hat, immer Zwischenvariablen verwenden.
Eine ganz einfache Sache; man darf nur nicht schreibfaul sein.
Delphi-Quellcode:
var
  Benutzermeldung : string;
begin
  Benutzermeldung := 'Benutzername ist <'+GetLocalUserName+'>';
  ShowMessage(Benutzermeldung);
end;

TitanNano 8. Dez 2010 18:09

AW: String ist nicht ereiterbar!!
 
danke für die Antwort, aber mein Delphi erkennt die Funktion StrResetLength nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:11 Uhr.
Seite 1 von 2  1 2      

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