AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

#0 aus String entfernen

Ein Thema von Andreas L. · begonnen am 15. Apr 2009 · letzter Beitrag vom 15. Apr 2009
Antwort Antwort
Andreas L.
(Gast)

n/a Beiträge
 
#1

#0 aus String entfernen

  Alt 15. Apr 2009, 14:01
Hi,
mit folgender Routine lese ich den aktuellen Benutzernamen aus
Delphi-Quellcode:
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;
um ihn in einem Dateinamen zu verwenden:
LSV.SaveToFile(Path + GetCurrentUserName + '@' + List[iLine] + '[' + IntToStr(i) +'].txt'); 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.
Result := StringReplace(sUserName, #0, '', [rfReplaceAll]); Delete(Result, Length(Result), 1); Was mache ich falsch?

Grüße,
Andy
  Mit Zitat antworten Zitat
TurboMartin

Registriert seit: 13. Feb 2006
Ort: Bad Honnef
765 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: #0 aus String entfernen

  Alt 15. Apr 2009, 14:06
trim() ?
Tomorrow will be cancelled due to lack of interest.

  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.658 Beiträge
 
Delphi 7 Personal
 
#3

Re: #0 aus String entfernen

  Alt 15. Apr 2009, 14:09
Hallo Andreas,

aus der Hüfte geschossen versuch es mal mit
Delphi-Quellcode:
var
  sUserName: string[255];
und
GetUserName(@sUserName[1]), dwUserNameLen); soll dwUserNameLen eigentlich die #0 mit enthalten oder nicht?

Gruß
K-H
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#4

Re: #0 aus String entfernen

  Alt 15. Apr 2009, 14:11
Zitat von TurboMartin:
trim() ?
Man, wo hab ich heute meinen Kopf. Da hätte ich auch selbst drauf kommen können. Danke
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#5

Re: #0 aus String entfernen

  Alt 15. Apr 2009, 14:29
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;
  Mit Zitat antworten Zitat
TurboMartin

Registriert seit: 13. Feb 2006
Ort: Bad Honnef
765 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: #0 aus String entfernen

  Alt 15. Apr 2009, 14:35
Zitat von sx2008:
Eigentlich ist doch aber deine Funktion GetCurrentUserName fehlerhaft.
Der Fehler mit Trim zu korrigieren ist dann eher unschön.
Ich hab nicht nach der Funktion geschaut, einfach nur die Frage beantwortet, wie er #0 wegbekommt.

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?
Tomorrow will be cancelled due to lack of interest.

  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 23:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf