Autor Beitrag
mexx
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Fr 01.06.07 15:31 
Hi,
ich verwende folgen Code zum Auslesen des Benutzernamens.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
function GetCurrentUserName: string;
const
  cnMaxUserNameLen = 254;
var
  sUserName: string;
  dwUserNameLen: DWORD;
begin
  dwUserNameLen := cnMaxUserNameLen-1;
  SetLength(sUserName, cnMaxUserNameLen);
  GetUserName(PChar(sUserName), dwUserNameLen);
  SetLength(sUserName, dwUserNameLen);
  Result := sUserName;
end;


Nun muss ich in die Anwendungsdaten des Benutzers und verwende somit das Result von der Funktion, welches ein String ist, wie folgt.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
...
var Teil1,Teil2,Teil3,Erg:String;
...
 teil1 := '\\fs01\UserHomes\';
 teil2 := GetCurrentUserName;
 teil3 := '\Anwendungsdaten\ICAClient\pn.ini';
 erg   := teil1 + Teil2 + teil3;
 showmessage(erg);


Und hier das Ergebnis: \\fs01\UserHomes\mexx <-- und schluss!!!
Teil3 wird nicht mehr and den String erg angehangen. Verwende ich für Teil2 einen String wie 'mexx' kommt der vollständige Pfad mit teil3 raus. Was stimmt da nicht?

Vielen Dank, Mexx

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Fr 01.06.07 15:38 
Bei mir funktioniert das wunderbar. :nixweiss:
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Fr 01.06.07 15:40 
Das liegt wahrscheinlich daran, dass am Ende ein Nullzeichen dranhängt. (Keine 0, das Zeichen mit der Nummer 0 in der ASCII-Tabelle). Das einfach wegmachen, dann gehts.

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
Stefan-W
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 475

Win 7 SP1
D2005 PE
BeitragVerfasst: Fr 01.06.07 15:40 
ich bin mir jetzt nicht sicher ob Delphi die groß und Kleinschreibung beachtet...

aber versuche eine Variable immer gleich zu schreiben
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 01.06.07 15:40 
GetCurrentUsername liefert einen String, der als letztes Zeichen ein #0 hat, was ja das Ende eines Strings markiert. Also einfach das letzte Zeichen von GetCurrentUsername verwerfen, dann sollte es gehen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
function GetCurrentUserName: string;
const
  cnMaxUserNameLen = 254;
var
  sUserName: string;
  dwUserNameLen: DWORD;
begin
  dwUserNameLen := cnMaxUserNameLen-1;
  SetLength(sUserName, cnMaxUserNameLen);
  GetUserName(PChar(sUserName), dwUserNameLen);
  SetLength(sUserName, dwUserNameLen-1);
  Result := sUserName;
end;

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Fr 01.06.07 15:51 
Es geht, danke!!! Ich wusste das nicht mit dem Ende eines Strings. Hattes aber schon geahnt und mir die Länge des Strings ausgeben lassen, der immer eins mehr war, als in Wirklichkeit.

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 01.06.07 21:23 
Alternativ kannst Du auch die Funktion Trim verwenden ... Die entfernt alle undruckbaren Zeichen am Anfang und Einde eines Strings ...

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.