Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Win API


Информационный Канал Subscribe.Ru


RusFAQ.ru: Win API

Выпуск № 043
от 19.01.2004, 01:20

Администратор:
Имя: Калашников О. А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 108
Отправлено ответов: 186
Активность: 172.2 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Neomant
Статус: Начальный
Общий рейтинг: 117.24
[Подробней >>]
chebv
Статус: Доверительный
Общий рейтинг: 114.46
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 146.63
URL: Программирование
[Подробней >>]
 
Pawel
Статус: Доверительный
Общий рейтинг: 168.75
[Подробней >>]
BOLT
Статус: Профессиональный
Общий рейтинг: 169.34
URL: Начинающему программитсу: софт, примеры, документация, Assembler, C & C++.
Телефон: 02
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 104. Ув эксперты! Помогите разобраться в теории.Если есть массив char szArray[] = "Hi!"; то si... (ответов: 3)
Вопрос № 105. Здравствуйте, уважаемые эксперты! Какой функцией можно удалить папку содержащую файлы и папки?... (ответов: 4)

Вопросов: 2, ответов: 7


 Вопрос № 104

Ув эксперты!
Помогите разобраться в теории.Если есть массив
char szArray[] = "Hi!"; то sizeof(szArray) дает 4.Это ясно.А если имеется массив указателей
char *szFiles[] =
{
"test1.exe",
"test2.exe",
"test3.exe",
"test4.exe",
"test5.exe"
};
то sizeof(szFiles) дает 20,sizeof(szFiles[0]) дает 4,непонятно,что за числа и что они значат.Хотя
sizeof(szFiles)/sizeof(szFiles[0]) дает 5,т.е. реальный размер массива.Почему?



Вопрос отправлен: 13.01.2004, 03:05
Отправитель: Alex

[Следующий вопрос >>] [Список вопросов]

Отвечает Neomant

Приветствую Вас, Уважаемый Alex!
За спасибо.
Извени.

Ответ отправлен: 13.01.2004, 22:39
Отправитель: Neomant


Отвечает chebv

Доброе время суток, Alex!
sizeof(szFiles) дает 20, потому что это у тебя массив из 5 указателей. Указатель имеет размер 4 байта. 4*5=20.
Соответственно sizeof(szFiles[0]) - размер первого указателя.
sizeof(szFiles)/sizeof(szFiles[0]) - дает не размер массива в байтах, а количество элементов заданного размера в данном массиве.

Ответ отправлен: 13.01.2004, 08:59
Отправитель: chebv


Отвечает Bob Johnson

Добрый день, Alex!
4 - это размер указателя (32 бит на 32-битной машине).
20 - полный размер массивва.
sizeof(szFiles)/sizeof(szFiles[0]) - некая стандартная магия С, которая позволяет определить длину такого массива.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 18.01.2004, 00:32
Отправитель: Bob Johnson


 Вопрос № 105

Здравствуйте, уважаемые эксперты!
Какой функцией можно удалить папку содержащую файлы и папки?



Вопрос отправлен: 14.01.2004, 17:14
Отправитель: Drahus (drahus@yandex.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Pawel

Приветствую Вас, Drahus!
Можно использовать SHFileOperation модуль ShellApi
Описание фнкции:
unction SHFileOperation(const lpFileOp: TSHFileOpStruct): Integer;
Производит копирование, удаление, перемещение,переименование файлов.
Параметры
lpFileOp: Структура TSHFileOpStruct содержащая данные об операции.
Возвpащаемое значение:
В случае успеха возвращает значение 0. В случае неудачи любое другое значение.
!!!Примечание: Не поддержана в Windows NT.


Приложение:

Ответ отправлен: 14.01.2004, 18:51
Отправитель: Pawel


Отвечает chebv

Приветствую Вас, Drahus!
RemoveDirectory - удаляет пустую папку. Удалить непустую папку нельзя, сначала необходимо удалить ее содержимое.

Ответ отправлен: 15.01.2004, 09:03
Отправитель: chebv


Отвечает Neomant

Доброе время суток, Уважаемый Drahus!
Универсального способа пока нет.
Можете попробовать использовать цикл и функцию RemoveFile
Её прототип и краткое описание в приложении.


Приложение:

Ответ отправлен: 15.01.2004, 09:41
Отправитель: Neomant


Отвечает BOLT

Доброе время суток, Drahus!
Сначала удаляешь файлы функцией
BOOL DeleteFile(
LPCTSTR lpFileName // имя файла
);

Далее пустой каталог удаляешь функцией
BOOL RemoveDirectory(
LPCTSTR lpPathName
// путь/имя каталога
);

Вот и весь алгоритм.


Ответ отправлен: 17.01.2004, 13:28
Отправитель: BOLT



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (24)
C / C++ (17)
Perl (4)
Builder / Delphi (18)
Pascal (19)
Basic / VBA (5)
Java / JavaScript (5)
PHP (13)
Криптография (5)
WinAPI (12)
Пользователю
Windows 95/98/Me (40)
Windows NT/2000/XP (58)
"Железо" (30)
Поиск информации (20)
Администратору
Windows NT/2000/XP (28)
Linux / Unix (10)
Юристу
Гражданское право (14)
Семейное право (10)
Трудовое право (11)
КоАП (10)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное