Страница 1 из 1

Добавлено: 28 Июль 2004, 10:16
Гость
С5.0 ШВС, Вынь ХР.

Есть текстовый файлик, типа csv. Большой на 500 метров. Надо некие поля из него перегнать в tps. Все локально. Вот сгенерил порцедуру как обычно типа process... Уже 4 часа работает, а обработано всего 6 метров..
Как бы ускорить???

Астахов Михаил mihael_a@mtu-net.ru (Диатоника)

(Добавление)

Для записи в tps скобки stream и flush (или logout, commit) с периодическим сбросом (~1000 записей), для чтения - buffers. Вместо process проще window.
Насколько помню, была закачка ~15 мег около полминуты на Cel400 и Win98.

С уважением,
Вячеслав Черников support@finsoft.ryazan.ru

Я давно этим безобразием не занимался..мона пример?
stream(file_текстовый)
прочитал строчку из текстового файла
разобрал ее
присвоиk поля в tps
append(file_tps) (или add? хотя add медленнее буит?)
flush(текстовый_файл). Так?

Астахов Михаил

Написал: ClaList(2)

Добавлено: 28 Июль 2004, 15:59
Гость
Михаил,

Код: Выделить всё

num#=0
stream(file)
set(text)
loop
   next(text)
   if error()
     break
   .
   !!!!!!!!!!!!!
   !разбор строки и присвоение
   !!!!!!!!!!
   append(file)
   num#+=1
   if num#>1000
     flush(file)
     stream(file)
     num#=0
   .
.
if num#>0
   flush(file)
.
build(file)
С уважением,
Вячеслав Черников

Сорри, маленькая поправка:

Код: Выделить всё

   num#=0
  stream(file)
  set(text)
  loop
     next(text)
     if error()
       break
     .
     !!!!!!!!!!!!!
     !разбор строки и присвоение
     !!!!!!!!!!
     append(file)
     num#+=1
     if num#>1000
       flush(file)
       stream(file)
       num#=0
     .
  .
  flush(file)
  build(file)
С уважением,
Вячеслав Черников
Написал: ClaList(2)