- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
char unsigned c;
DWORD m;
DWORD n;
int i = 0;
BOOL b = TRUE;
HANDLE hFile = CreateFile(szFile, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
printf("Could not open File");
return NULL;
}
// узнаем размер файла
while (b)
{
b = ReadFile(hFile, &c, 1, &m, NULL);
if (m == 0)
{
printf("STOP ");
printf("%i\n", i);
break;
}
i++;
}
А почему, не GetFileSizeEx? Файл может быть больше 4х гб.
Часто вообще через не переносимое между системами API нежелательно реализовывать. GetFileSize - не переносимая апишка. Так, что говнокод 5220 получает дополнительные баллы в пользу говнокодности.
Может однажды он станет не виндовым. Аваст вон работает, как под виндой, так и под линуксом. Nod32 тоже. Зачем закладывать грабли на будующее, если можно сделать нормально без трудозатрат (написав то же кол-во кода, а то и меньше).
И вообще функции чтения файла - крайне неудобный метод чтения настроек. Можно использовать специально предназанченые для этого библиотеки. Зачем писать свой велосипед?
Не смешите
> И вообще функции чтения файла - крайне неудобный метод чтения настроек. Можно использовать специально предназанченые для этого библиотеки. Зачем писать свой велосипед?
Да этому студенту наверняка надо было продемонстрировать свое знание WinApi.
К тому же бывают ситуации когда готовые решения не подходят.
O__o а с каких это пор нельзя? Прежде чем постить в справочник хоть что ли заглянули.
Не улавливаю связь переносимость - говнокод. А может автору и не нужна переносимость, в таком случае применение специфического api даже лучше. На WinApi написано огромное количество программ, их авторам по большей части переносимость вообще и не нужна. При этом как правило, на WinApi пишут более опытные программисты и их код далеко != говнокоду. В данном случае студенту просто по теме необходимо было на WinApi реализовывать, наверняка если бы была возможность писал бы на си билдере. Хотя в целом я поддерживаю переносимость, только не считаю, что непереносимо == говногод.
Ну конечно... Я всё что-можно писал на винапи в детстве (писал и даже оконные интерфейсы, а оконные библиотеки неуважал), принебрегая стандартной библиотекой языка. Вообщем во всю писал свои велосипеды.
Велосипедостроительством как раз занимается школота.
Это знание WinApi на уровне хелловорлдщика. У WinApi есть некоторые достоинства, которые на кроссплатформенных библиотеках и визуальных средах не реализуешь.
Этож сколько я времени в пустоту потратил...
Лучше бы над задачей моделирования и её алгоритмами более серьёзно подумал.
Я ж всерьёз думал, что всё, что написал сам - это круто, а всё, что написали другие - говно. Начал даже ось свою писать. (Вот долбанутым был...)
Что вы... Чесание пятки левым ухом никогда не практиковал, если есть рука.
(Конечно, если ни каких средств, кроме уха не было, то если сильно нужно было, то и ушами чесал).
К сожалению, если была специальная автоматическая стелька-чесалка, то ей пользоваться категорически отказывался, ссылаясь на то, что это создано не моими силами.
Вообще есть три стадии постижения чего-угодно:
1. Используются стандартные средства, упрощающие работу и более понятные для понимания. При этом код говнянен из-за кучи Button1, Button2 итд.
2. Используются велосипеды, ибо стандартные средства - не Ъ.
3. Используются стандартные средства, причём используются на полную и грамотно.
WinAPI?
WinAPI!
....
+ wine = PROFIT!