Wątek przeniesiony 2014-03-29 23:10 z Delphi i Pascal przez olesio.

Nie potrafię odczytać pliku ze zmiennej środowiskowej %AppData%

0

Poniższy kod działa bez problemu. Z podaną na sztywno ścieżką dostępu.

Var
  TF : TextFile;
  s : String;

Begin

  AssignFile(TF, 'C:\Users\lukasz\AppData\Roaming\DANE\link.txt');
  Reset(TF);
  Readln(TF, S);
  logi.Label1.Caption :=(s);
  label4.Caption:=(s);
  CloseFile(TF); 

A kiedy próbuje wczytać ten sam plik przy pomocy zmiennej %Appdata% program nie widzi pliku.

Var
  TF : TextFile;
  s : String;

Begin

  AssignFile(TF, '%APPDATA%\DANE\link.txt');
  Reset(TF);
  Readln(TF, S);
  logi.Label1.Caption :=(s);
  label4.Caption:=(s);
  CloseFile(TF); 
 

Domyślam się że delphi nie interpretuje zmiennej %appdata% ale jak to naprawić?

0

Zapoznaj się z funkcją

GetEnvironmentVariable
0

@Łukasz001: Po 1: GOOGLUJESZ I KOMBINUJESZ SAMODZIELNE DO BÓLU. Sorry drę się, ale inaczej chyba do niektórych nie dociera. Po 2: Pisanie na forum ZAWSZE traktujesz jak ostateczność. Po 3: o banały ZAWSZE pytasz tutaj w dziale Newbie! Po 4: patrz poniżej.

function AddBackSlash(Path : string) : string;
begin
  Result := '';
  if Path <> '' then
  begin
    if Path[Length(Path)] <> '\' then
    begin
      Result := Path + '\';
    end
    else
    begin
      Result := Path;
    end;
  end;
end;

function GetEnvVarValue(const VarName : string) : string;
var
  BufSize : integer;
begin
  BufSize := GetEnvironmentVariable(PChar(VarName), nil, 0);
  if BufSize > 0 then
  begin
    SetLength(Result, BufSize - 1);
    GetEnvironmentVariable(PChar(VarName), PChar(Result), BufSize);
  end
  else
  begin
    Result := '';
  end;
end;

//...
  Caption := AddBackSlash(GetEnvVarValue('APPDATA'));

1 użytkowników online, w tym zalogowanych: 0, gości: 1