Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.01.2011, 15:16
Аватар для Hack M
Hack M Hack M вне форума
Прохожий
 
Регистрация: 20.01.2011
Сообщения: 26
Репутация: 10
Стрелка Проблема с переменными

Надо узнать имя юзера, накопал такую ф-цию:

Код:
function GetUserFromWindows: string;
var
  UserName : string;
  UserNameLen : Dword;
begin
  UserNameLen := 255;
  SetLength(userName, UserNameLen);
  if GetUserName(PChar(UserName), UserNameLen) then
    Result := Copy(UserName,1,UserNameLen - 1)
  else
    Result := 'Unknown';
end;


Но мне надо как то это дело вставить в путь, например C:\Document and Setting\сюда имя юзера вставить надо\1.txt


подскажите плиз, было бы на php или cmd я бы уже сделал, а так только знакомлюсь с делфи

Последний раз редактировалось Hack M, 20.01.2011 в 18:40.
Ответить с цитированием
  #2  
Старый 20.01.2011, 15:41
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
uses
  ActiveX,
  ShlObj,
...
function GetSpecialFolderLocation(Folder: Integer): String;
var
  ppidl: PItemIDList;
begin
  Result:='';
  ppidl:=nil;
  try
    if SHGetSpecialFolderLocation(0, Folder, ppidl)=S_OK then
    begin
      SetLength(Result, MAX_PATH);
      if SHGetPathFromIDList(ppidl, PChar(Result)) then Result:=StrPas(PAnsiChar(Result));
    end;
  finally
    if ppidl<>nil then CoTaskMemFree(ppidl);
  end;
end;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit1.Text:=IncludeTrailingPathDelimiter(GetSpecialFolderLocation($28));
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 20.01.2011, 16:04
Аватар для Hack M
Hack M Hack M вне форума
Прохожий
 
Регистрация: 20.01.2011
Сообщения: 26
Репутация: 10
По умолчанию

И где путь указывать ? как узнанное имя юзера в путь вставить ?
Я с переменными по Delphi плохо общаюсь =((
Ответить с цитированием
  #4  
Старый 20.01.2011, 16:32
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Предложенное выше сразу дает путь к папке юзера (например, "C:\Users\ADMIN\"). А в переменной:
Код:
S:= IncludeTrailingPathDelimiter(GetSpecialFolderLocation($28)) + '1.txt';
__________________
Помогаю за Спасибо
Ответить с цитированием
  #5  
Старый 20.01.2011, 16:32
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

в Edit1.Text путь будет!
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #6  
Старый 20.01.2011, 16:34
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Очередной хaкир, незнающий как вичислить 2+2=?

Уже который по счету?

Хaктим?) Ню ню...
Ответить с цитированием
  #7  
Старый 20.01.2011, 16:38
Аватар для Hack M
Hack M Hack M вне форума
Прохожий
 
Регистрация: 20.01.2011
Сообщения: 26
Репутация: 10
Стрелка

Цитата:
Сообщение от v1s2222
Предложенное выше сразу дает путь к папке юзера (например, "C:\Users\ADMIN\"). А в переменной:
Код:
S:= IncludeTrailingPathDelimiter(GetSpecialFolderLocation($28)) + '1.txt';


Спасибо вам большое. родина вас не забудет.
Мне надо попасть в C:\Documents and Settings\username\Application Data\file.txt

то есть мне в кнопке надо будет выставить над begin:

Var: S:= IncludeTrailingPathDelimiter(GetSpecialFolderLocat ion($28)) + '\Application Data\file.txt';

верно ?
Ответить с цитированием
  #8  
Старый 20.01.2011, 16:46
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Не совсем. В варе переменные объявляются.
Код:
var s: String;
begin
  S:=IncludeTrailingPathDelimiter(GetSpecialFolderLocat ion($28)) + '\Application Data\file.txt';
__________________
Помогаю за Спасибо
Ответить с цитированием
  #9  
Старый 20.01.2011, 16:47
Аватар для Hack M
Hack M Hack M вне форума
Прохожий
 
Регистрация: 20.01.2011
Сообщения: 26
Репутация: 10
По умолчанию

Цитата:
Сообщение от Konrad
Очередной хaкир, незнающий как вичислить 2+2=?

Уже который по счету?

Хaктим?) Ню ню...



насчет хактима то просто попросил под ник нарисовать чё нить нормальное в зеленом стиле буквоцифр мне нарисовали)))
Ответить с цитированием
  #10  
Старый 20.01.2011, 16:47
Аватар для Hack M
Hack M Hack M вне форума
Прохожий
 
Регистрация: 20.01.2011
Сообщения: 26
Репутация: 10
Стрелка

Цитата:
Сообщение от v1s2222
Не совсем. В варе переменные объявляются.
Код:
var s: String;
begin
  S:=IncludeTrailingPathDelimiter(GetSpecialFolderLocat ion($28)) + '\Application Data\file.txt';

большое спасибо, всё Good !
Ответить с цитированием
  #11  
Старый 20.01.2011, 16:58
Аватар для Hack M
Hack M Hack M вне форума
Прохожий
 
Регистрация: 20.01.2011
Сообщения: 26
Репутация: 10
По умолчанию

Ещё чуток плиз помогите:

CopyFile('S:=IncludeTrailingPathDelimiter(GetSpeci alFolderLocat ion($28)) + '\Application Data\file.txt'', 'C:\Windows\file.txt', true);

как вот копировать его =(
Ответить с цитированием
  #12  
Старый 20.01.2011, 17:01
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
IncludeTrailingPathDelimiter(GetSpecialFolderLocation($1a));
вернет C:\Documents and Settings\<user name>\Application Data\
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #13  
Старый 20.01.2011, 17:07
Аватар для Hack M
Hack M Hack M вне форума
Прохожий
 
Регистрация: 20.01.2011
Сообщения: 26
Репутация: 10
По умолчанию

Всё рано ошибка, немогу скопировать

CopyFile('S:=IncludeTrailingPathDelimiter(GetSpeci alFolderLocation($1a)) + '\file.txt'', 'C:\Windows\file.txt', true);

[Error] Unit1.pas(48): Not enough actual parameters
[Error] Unit1.pas(48): Illegal character in input file: '\' ($5C)
[Error] Unit1.pas(48): Statement expected, but expression of type 'String' found
Ответить с цитированием
  #14  
Старый 20.01.2011, 17:51
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Возьми же книжку по делфи и почитай...
Код:
S:=IncludeTrailingPathDelimiter(GetSpeci alFolderLocation($1a)) + '\file.txt';
CopyFile(S, 'C:\Windows\file.txt', true);
__________________
Помогаю за Спасибо
Ответить с цитированием
  #15  
Старый 20.01.2011, 18:27
Аватар для Hack M
Hack M Hack M вне форума
Прохожий
 
Регистрация: 20.01.2011
Сообщения: 26
Репутация: 10
По умолчанию

[Error] Unit1.pas(50): Incompatible types: 'String' and 'PAnsiChar'
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:19.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025