#0 aus String entfernen
Hi,
mit folgender Routine lese ich den aktuellen Benutzernamen aus
Delphi-Quellcode:
um ihn in einem Dateinamen zu verwenden:
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;
Delphi-Quellcode:
Leider wird immer nur Path + GetCurrentUserName als Dateiname gespeichert. Durch den Debugger hab ich herausgefunden das beim von GetCurrentUserName zurückgegebenen String ein #0 am Ende steht. Ich hab mit folgenden Codes versucht #0 zu entfernen. Leider funktionierts nicht.
LSV.SaveToFile(Path + GetCurrentUserName + '@' + List[iLine] + '[' + IntToStr(i) +'].txt');
Delphi-Quellcode:
Result := StringReplace(sUserName, #0, '', [rfReplaceAll]);
Delphi-Quellcode:
Was mache ich falsch?
Delete(Result, Length(Result), 1);
Grüße, Andy |
Re: #0 aus String entfernen
trim() ?
|
Re: #0 aus String entfernen
Hallo Andreas,
aus der Hüfte geschossen versuch es mal mit
Delphi-Quellcode:
und
var
sUserName: string[255];
Delphi-Quellcode:
soll dwUserNameLen eigentlich die #0 mit enthalten oder nicht?
GetUserName(@sUserName[1]), dwUserNameLen);
Gruß K-H |
Re: #0 aus String entfernen
Zitat:
|
Re: #0 aus String entfernen
Eigentlich ist doch aber deine Funktion GetCurrentUserName fehlerhaft.
Der Fehler mit Trim zu korrigieren ist dann eher unschön. Ungestest, aber ich denke du kommst damit klar:
Delphi-Quellcode:
function GetCurrentUserName:string;
const cnMaxUserNameLen = 254; var dwUserNameLen: DWORD; begin dwUserNameLen := cnMaxUserNameLen - 1; SetLength(Result, cnMaxUserNameLen); // besser Result als Puffer verwenden // immer den Returncode einer Windows API Funktion auswerten if GetUserName(PChar(sUserName), dwUserNameLen) then SetLength(Result, dwUserNameLen-1) // in der rückgegebenen Länge in die #0 mit enthalten else Result := ''; end; |
Re: #0 aus String entfernen
Zitat:
Andere Sache, wo kommt aufeinmal #3 her, der war bei der Antwort von Autor, als ih sie gelesen habe, nocht nicht da, wieso ist der aber jetzt aufeinmal da? :gruebel: :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:39 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