Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.05.18;
Скачать: [xml.tar.bz2];

Вниз

TGauge для вывода сколько процентов файла обработано.   Найти похожие ветки 

 
operator ©   (2008-04-17 12:14) [0]

Есть текстовый файл, программа обрабатывает построчно. Хочу выводит на экран информацию о ходе выполнения:


procedure TForm1.Button1Click(Sender: TObject);
const filename:string="Z:\share\wafer 6eid48302-1-02 W6EID48302-1-02 20080329 221001.rstl";
var f:textfile;
   sr:TSearchRec;
   size,complete:longint;
   s:string;
begin
   complete:=0;
   findfirst(filename,faanyfile,sr);
   size:=sr.Size;
   assignfile(f,filename);
   reset(f);
   while not eof(f) do begin
     readln(f,s);
     inc(complete,length(s));
     Gauge1.Progress:=round(100*complete/size);
     //Обработка строки
   end;
end;


пробую на файле размером 46 Мб, в результате в районе 40-50 процентов индикатор сбрасывается в 0, после анализа выяснил, что в этотм момент
round(100*complete/size);
возвращает ему отрицательное значение. :-\ :-\


 
Сергей М. ©   (2008-04-17 12:20) [1]


> выяснил, что в этотм момент
> round(100*complete/size);


Значит в этот момент complete < 0


 
Плохиш ©   (2008-04-17 12:21) [2]


Generic integer types Type  Range  Format  .NET Type Mapping  
Integer
-2147483648..2147483647
signed 32-bit
System.Int32

Cardinal
0..4294967295
unsigned 32-bit
System.UInt32


Fundamental integer types include Shortint, Smallint, Longint, Int64, Byte, Word, and Longword.
Fundamental integer types Type  Range  Format  .NET Type Mapping  
Shortint
-128..127
signed 8-bit
System.SByte

Smallint
-32768..32767
signed 16-bit
System.Int16

Longint
-2147483648..2147483647
signed 32-bit
System.Int32

Int64
-2^63..2^63-1
signed 64-bit
System.Int64

Byte
0..255
unsigned 8-bit
System.Byte

Word
0..65535
unsigned 16-bit
System.UInt16

Longword
0..4294967295
unsigned 32-bit
System.UInt32

Заключи деление в скобки или используй Integer.


 
oldman ©   (2008-04-17 12:21) [3]


> после анализа выяснил, что в этотм момент
> round(100*complete/size);
> возвращает ему отрицательное значение.


Проверь в этот момент значения complete и size.
О результатах сообщи.


 
Плохиш ©   (2008-04-17 12:22) [4]


> Сергей М. ©   (17.04.08 12:20) [1]
>
> > выяснил, что в этотм момент
> > round(100*complete/size);
>
>
> Значит в этот момент complete < 0

= 21474837 * 100
;-)


 
Плохиш ©   (2008-04-17 12:22) [5]


> * 100

выкинуть :-)))


 
operator ©   (2008-04-17 12:28) [6]


> Заключи деление в скобки или используй Integer.


Работает, спасибо! :-)


 
ASoft   (2008-04-17 17:05) [7]


> operator ©   (17.04.08 12:14)

файл не забудь закрыть:)



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.05.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.054 c
2-1208428138
arinyshka
2008-04-17 14:28
2008.05.18
Забдокировать изменение RadioGroup


2-1208508202
umbra
2008-04-18 12:43
2008.05.18
как запихнуть данные в базу? :)


2-1208284170
smartleds
2008-04-15 22:29
2008.05.18
Подскажите как удалить массив TrackBar-ов


2-1208524530
Oyeme
2008-04-18 17:15
2008.05.18
Ант и POS или ...то чего нету


15-1207325337
tesseract
2008-04-04 20:08
2008.05.18
IPhone vs другие





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский