AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi 'C:\Users\'+ Benutzername'\neu\ddd.txt' geht nicht
Thema durchsuchen
Ansicht
Themen-Optionen

'C:\Users\'+ Benutzername'\neu\ddd.txt' geht nicht

Ein Thema von -Phantom- · begonnen am 23. Dez 2009 · letzter Beitrag vom 24. Dez 2009
Antwort Antwort
Seite 1 von 2  1 2      
-Phantom-

Registriert seit: 26. Nov 2009
Ort: Bockhorst
319 Beiträge
 
Delphi 7 Enterprise
 
#1

'C:\Users\'+ Benutzername'\neu\ddd.txt' geht nicht

  Alt 23. Dez 2009, 01:56
Moin moin,

So mein Problem ist diesmal das ich eine Datei löschen will zu erst soll der Benutzername festgestellt werden. Bekomme ich auch alles gut hin. Aber ich verzweifel daran den Filename einzugeben.
Delphi-Quellcode:
Benutzername := GetUsername;
filename := 'C:\Users\'+ Benutzername'\neu\ddd.txt'; // Hier muss ein Fehler sein. Wie füge ich den den "Benuzernamen" mit in den Pfad ein? Kann eig. nur ein dummer Fehler von mir sein aber ich habe schon probiert und probiert aber bekomme es nicht hin.
Deletefile(filename);
Mathias Jansen
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

Re: 'C:\Users\'+ Benutzername'\neu\ddd.txt' geht nicht

  Alt 23. Dez 2009, 02:18
Wie wär's damit:
1. Schau dir die Zeile mal genau an. Fällt dir was auf?
2. Lies nochmal genau den Fehler, den Delphi ausgibt.
3. Schau dir die Zeile noch mal genau an. Fällt dir jetzt was auf?

[edit]
Ich gehe mal davon aus, dass doch nicht der offensichtliche Syntaxfehler gemeint war.
GetUsername ist eine API-Funktion und kennt Delphi-Strings gar nicht, weshalb sie auch keinen zurückgeben kann. Du musst stattdessen einen Zeiger auf einen ausreichend großen Puffer sowie die Länge des Puffers als ersten bzw. zweiten Parameter an die Funktion übergeben. Wenn du einmal kurz in der IDE F1 oder Strg+Shift+Space gedrückt hättest, wäre dir das auch aufgefallen. Beispiele zum korrekten Aufruf sollten sich hier im Forum finden lassen.
[/edit]

Abgesehen davon ist das nicht gerade der sicherste Weg, das Benutzerverzeichnis herauszufinden - der kann nämlich je nach Betriebssystemversion und persönlichen Einstellungen auch völlig woanders liegen. Um solche speziellen Pfade zuverlässig herauszufinden gibt es Delphi-Referenz durchsuchenSHGetFolderPath.

[edit]Glaskugel kaputt, und mein erster Gedanke war doch der richtige... [/edit]
  Mit Zitat antworten Zitat
-Phantom-

Registriert seit: 26. Nov 2009
Ort: Bockhorst
319 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: 'C:\Users\'+ Benutzername'\neu\ddd.txt' geht nicht

  Alt 23. Dez 2009, 02:28
Ne also das mit dem Benutzernamen hab ich hin bekommen dazu braucht man die Funktion:
Delphi-Quellcode:
function GetUsername: string;
var
  Buffer: array[0..255] of Char;
  Size: DWord;
begin
  Size := SizeOf(Buffer);
  if not Windows.GetUserName(Buffer, Size) then
    RaiseLastOSError;
  SetString(Result, Buffer, Size - 1);
end;
als test hab ich auch gemacht label1.caption := Benutzernamen und dann kam da auch mein Benutzername!
Ich will ja nur wissen wie ich Benutzername richtig in diesen Pfad einbinde! mehr will ich gar nicht.
Und ich will ja nicht wissen wo irgend welche Ordner sind !
Mathias Jansen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: 'C:\Users\'+ Benutzername'\neu\ddd.txt' geht nicht

  Alt 23. Dez 2009, 02:40
Ich schenke dir ein "+", aber erst morgen auspacken.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
-Phantom-

Registriert seit: 26. Nov 2009
Ort: Bockhorst
319 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: 'C:\Users\'+ Benutzername'\neu\ddd.txt' geht nicht

  Alt 23. Dez 2009, 02:48
So danke das wollte ich nur wissen ^^ Man habe mir schon gedacht das , dass so ein dummer Fehler sein muss. Aber ich bin einfach nicht drauf gekommen xD
Mathias Jansen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: 'C:\Users\'+ Benutzername'\neu\ddd.txt' geht nicht

  Alt 23. Dez 2009, 02:53
Und was hat der Compiler für eine Fehlermeldung ausgegeben?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#7

Re: 'C:\Users\'+ Benutzername'\neu\ddd.txt' geht nicht

  Alt 23. Dez 2009, 02:59
Bevor du irgendwas komisches frickelst, schau dir wirklich, wie schon gesagt, mal SHGetFolderPath an...

Edit:
Delphi-Quellcode:
uses
  ActiveX, ShlObj;

function GetShellFolder(CSIDL: integer): string;
var
  pidl: PItemIdList;
  SystemFolder: Integer;
  Malloc: IMalloc;
begin
  Malloc := nil;
  Result := '';
  SHGetMalloc(Malloc);
  if Malloc = nil then
  begin
    Exit;
  end;
  try
    SystemFolder := CSIDL;
    if SUCCEEDED(SHGetSpecialFolderLocation(0, SystemFolder, pidl)) then
    begin
      SetLength(Result, MAX_PATH);
      if SHGetPathFromIDList(pidl, PChar(Result)) then
      begin
        SetLength(Result, Length(PChar(Result)));
      end else
        Result := '';
    end;
  finally
    Malloc.Free(pidl);
  end;
end;

function PfadZuAnwendungsDaten: string;
begin
  Dir := GetShellFolder(CSIDL_APPDATA);
end;
Um zum Benutzerprofil zu kommen, musst du vermutlich unten CSIDL_APPDATA durch $0028 ersetzen.
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
-Phantom-

Registriert seit: 26. Nov 2009
Ort: Bockhorst
319 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: 'C:\Users\'+ Benutzername'\neu\ddd.txt' geht nicht

  Alt 23. Dez 2009, 19:15
Zum lezten mal ich bekomme das doch hin mit dem Benutzernamen !! Wo ist das zweite plus noch nicht gesezt hatte kann da ich brauche noch ein Operator oder Simicolen. Wo das zweite Plus da war ging alles super !
Mathias Jansen
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#9

Re: 'C:\Users\'+ Benutzername'\neu\ddd.txt' geht nicht

  Alt 23. Dez 2009, 19:27
Zitat von -Phantom-:
Zum lezten mal...
Du redest hier nicht mit deinen Kumpels oder irgendwelchen Kleinkindern!!

Wenn du das so zusammenbaust, wie du es jetzt hast, dann schließt du schonmal kategorisch alle Benutzer < Vista aus, denn unter XP heißt das Verzeichnis nunmal "Dokumente und Einstellungen" bzw. "Documents and Settings".

Und wer weiß, wie es in Windows 8 heißt?

Es war also lediglich ein gut gemeinter Rat. Aber, bitte sehr. Manche Individueen müssen halt erst auf die Schnauze fallen, um zu lernen. Der Mensch ist eins davon...
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
-Phantom-

Registriert seit: 26. Nov 2009
Ort: Bockhorst
319 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: 'C:\Users\'+ Benutzername'\neu\ddd.txt' geht nicht

  Alt 23. Dez 2009, 20:58
Oke... Also hab ich das nun so verstanden das meine Funktion den Benutzernamen herauszufinden nur unter Vista geht und nicht unter XP? Naja wenn das so ist probiere ich mal den Vorschlag aus.
Mathias Jansen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 00:07 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