Главная страница
    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.056 c
4-1188896231
celerons
2007-09-04 12:57
2008.05.18
RAS WIN API Флаги при создании VPn


15-1207322240
PZ
2008-04-04 19:17
2008.05.18
Microsoft провалил продажи Windows Vista


15-1207257768
No_Dead
2008-04-04 01:22
2008.05.18
вопрос о xml


2-1208498108
webSQLNeederr
2008-04-18 09:55
2008.05.18
Как увидеть из подфункции переменную из высшей функции?


2-1208127399
HF-Trade
2008-04-14 02:56
2008.05.18
Размер файла в сети





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский