Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Units Again [D7, XP]


Страницы:   1 2 3

Steep ©   (2006-10-13 07:16:00) 

Хотел бы узнать оценку моего стиля кодирования
//======================================================
unit FileSizeS;

interface

uses
SysUtils;

function GetSizeTypeS(Path: String): String;
function GetSizeS(Path: String): integer;

implementation

//Получение типа размера файла в строке(1-б, 2-кб, 3-мб, 4-гб, 5-тб :)
function GetSizeTypeS(Path: String): String;
var
sr : TSearchRec;
FSize : real;
i : byte;
begin
FindFirst(Path, faAnyFile, sr); // Получение атрибутов
FSize := sr.Size;
i := 0;
 repeat
 i := i+1;
 Str( FSize:6:2, result);
 FSize := FSize/1024;
 until FSize<1;

 Case i of
   1: result := result + ' байт.';
   2: result := result + ' кбайт';
   3: result := result + ' мбайт';
   4: result := result + ' гбайт';
   5: result := result + ' тбайт';
 end;
end;

//Получение размера файла в байтах
function GetSizeS(Path: String): integer;
var
sr : TSearchRec;
begin
FindFirst(Path, faAnyFile, sr); // Получение атрибутов
result := sr.Size;
end;

end.
//======================================================
Буду рад любой критике

PS. Спасибо за помощь с юнитом!
PPS.
Если удалять в проге ненужные Uses - уменьшит ли это размер проги? Или ненужные функции процедуры вообще не лезут в exe?


Anatoly Podgoretsky   (2006-10-14 21:30:00) [1]


> может ли размер файла превысить максимальное число типа
> Integer

Без проблем, размер файла задается не Integer, а Int64


wl   (2006-10-14 21:21:00) [2]

??? Ты прям меня грузиш на 100% :)
другими словами - может ли размер файла превысить максимальное число типа Integer


Steep   (2006-10-14 19:13:00) [3]


> Кстати разделяй понятия стиль и кривой код.

А это разные понятия?
Стиль кода (как наиболее удачно сделать какую-то задачу) и стиль оформления кода
PS. насчет кривого кода - ну что ж поделаешь бывает "почуть-чуть" :)

> какой размер может быть у файла?

??? Ты прям меня грузиш на 100% :)

> Срочным порядком нужно избавляться от такого "стиля". :)

Уже на этом пути ;)

>  Сервер не должен падать!!!

Конечно не должен! (я испытываю на других фирмах :)


Anatoly Podgoretsky   (2006-10-14 19:01:00) [4]

Джо ©   (14.10.06 18:51) [51]
Для серверов то, но и то надо в лог выводить информацию. Сервер не должен падать!!!

Это я на своей шкуре испытал за последние две недели.


Anatoly Podgoretsky   (2006-10-14 19:00:00) [5]


> Нет, это совсем не типа :) Ладно, даю одну подсказку: какой
> размер может быть у файла?

Страшный, теоритически 10^20


Джо   (2006-10-14 18:51:00) [6]

> [49] Steep ©   (14.10.06 18:40)
>
> > составлять из двух значений Sr.FindData.nFileSizeHigh
> и
> > Sr.FindData.nFileSizeLow
>
> Это типа как в винде? размер фала и занимаемое место на
> диске?

Нет, это совсем не типа :) Ладно, даю одну подсказку: какой размер может быть у файла?


> Так при использовании мого кода глюков нет.. все ж работет
> ошибок не выдает...
> Подумашь чуть больше оперки съест ;)

Это очень плохой подход. Срочным порядком нужно избавляться от такого "стиля". :)


> А вобще ИМХО
> баг - вылетела ошибка и все дальше не работает
> глюк - какой-то косяк, например неправильно считает, но
> прога продолжает свою работу

Не, это уже определенно не то :)


Anatoly Podgoretsky   (2006-10-14 18:50:00) [7]


> Вот так пишеш, пишешь,а тут бац...

Что поделаешь, жизнь она жестокая штука, можно и умереть.

Кстати разделяй понятия стиль и кривой код.


Steep   (2006-10-14 18:40:00) [8]


> Но уже сам факт, что новичка интересует его стиль, вселяет
> оптимизм ;)

Рад стараться!
----------------------------------------------

> составлять из двух значений Sr.FindData.nFileSizeHigh и
> Sr.FindData.nFileSizeLow

Это типа как в винде? размер фала и занимаемое место на диске?

> запинали. %-)

Даже с одной стороны рад ;)

> советую приучить себя к  "борланд пишет так"

Стараюсь... раньше вобще лепил в одну строку ;)
А потом еще и на сайте нашел быстрые клавиши типа Ctrl+Shift+I (и офигел..;)

>  стиль борланда используют (афаик) в 90% контор

Я програмлю для себя... (хотя блин кто знает может будет новый Windows ;)

> nikola232 ©   (13.10.06 14:05) [36]

Спасибо за код ;)

> и не лень к шифту тянуться :)

Он тут всегда рядом!

> В общем вывод в корзину?

Вот так пишеш, пишешь,а тут бац...

> баг — глюк

Так при использовании мого кода глюков нет.. все ж работет ошибок не выдает...
Подумашь чуть больше оперки съест ;)
А вобще ИМХО
баг - вылетела ошибка и все дальше не работает
глюк - какой-то косяк, например неправильно считает, но прога продолжает свою работу


Anatoly Podgoretsky   (2006-10-14 14:04:00) [9]

В общем вывод в корзину?


ASoft   (2006-10-14 08:49:00) [10]

имхо, глюки и баги - это к аппаратной части. Ошибки - к программной


Ketmar   (2006-10-14 06:15:00) [11]

2Eraser: "баг" -- это жук такой, как мне словарь рассказал. а "Глюк" -- это композитор.


Думкин   (2006-10-14 05:05:00) [12]


> Eraser ©   (14.10.06 02:22) [44]

Обратимся к истории. Баг - от первого насекомого, которого нашли в аппаратуре, когда она начала сбоить и как оказалось - по его вине.


Eraser   (2006-10-14 02:22:00) [13]

> [32] Джо ©   (13.10.06 12:28)

> сошлюсь на синоним слова "баг" — "глюк

все таки хотя понятия баги и глюки иногда считаю одинаковыми — это не так.. в какой-то вроде бы умной книжке (не помню какой), читал, что баги — это ошибки возникающие по вине программиста, а глюки — по вине апаратной части или системы .. или программиста, но не "текущей" программы.

интересно бы услышать 100% правильное определение :)


guav   (2006-10-14 00:16:00) [14]

> [41] wl ©   (13.10.06 21:25)


> [42] Ketmar ©   (13.10.06 21:28)

Shiftовать действительно лениво. Но следую стилю, похожему на исходный код VCL. Переучиваться совсем не тяжко.
Давно тот код писал, сейчас бы наверное FmtStr или Format использовал и вначале Assert(I >= 0) .


Ketmar   (2006-10-13 21:28:00) [15]

>[41] wl(c) 13-Oct-2006, 21:25
>одно но - i, j...-переменные с большой буквы... и не лень
>к шифту тянуться :)
более того -- лично меня несколько раздражает. привык начинать переменные с маленькой -- наследие Оберона. удобство в том, что визуально отличается от имени процедуры.


wl   (2006-10-13 21:25:00) [16]

> guav ©   (13.10.06 19:50) [39]
чувствуется стиль!
одно но - i, j...-переменные с большой буквы... и не лень к шифту тянуться :)


Ketmar   (2006-10-13 20:15:00) [17]

запинали. %-)

в общем -- учиться и учиться. более того: советую приучить себя не к "а мне нравится не как все", а к "борланд пишет так". ибо стиль борланда используют (афаик) в 90% контор, где пишут на Delphi. переучиваться будет тяжко, если что (по себе знаю...)


guav   (2006-10-13 19:50:00) [18]

>   3: result := result + ' мбайт';

"файлы состоят из байт, в 1 байте 1024 милибайт" - почти (с) орешник

Моя версия перевода размера в строку:
function IntToSizeInUnits(I: Int64): string;
const
 Units: array[0..6] of string =
   ('Б','кБ','МБ','ГБ','ТБ','ПБ','ЭБ');
var J: Integer;
begin
 J := 0;
 while I >= (1 shl 10) do
 begin
   Inc(J);
   I := I shr 10;
 end;
 Result := IntToStr(I) + ' ' + Units[J];
end;


nikola232   (2006-10-13 14:22:00) [19]

Даже три раза ещё sr : TSearchRec;.
спрашивается зачем писал функцию function GetSizeS(Path: String): integer;


Думкин   (2006-10-13 14:10:00) [20]


>
> > не надо реал, а потом уже сдвиг вправо.
>
> Это как?

Я к целым числам свел - а как заметил SergP - этого мало. Тогда сдвиги откладываются.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо