Сортировка в Idl7.1

  • Автор темы somebody
  • Дата начала
S

somebody

#1
Здравствуйте!

Мне надо написать программу на языке IDL 7.1. Программа заключается в следующем. У меня есть ТЕМ-файл (.tem), который содержит статистическии данные: годы и какии-то даты к ним. Кроме того в файле может иметься какое-то количество комментариев, расположенных произвольно по массиву. В начале файла так-же написан комментарий. Задача состоит в том, чтобы вывести двухмерный плот этих данных относительно лет. Например ордината "х" это годы, а "у" это данные.

Я немного программирую в Java, а в IDL 7.1 нет. Написанная мною программа содержит ошибки и не выдаёт output.
Если кому-то будет не затруднительно, то посмотрите мой код и помогите мне улучшить программу.

<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">"Программа"</div></div><div class="sp-body"><div class="sp-content">PRO test
file = DIALOG_PICKFILE() ;вызов файла
OPENR, lun, file, /GET_LUN ;открытие файла
line = '' ;обозначение стринга
WHILE (NOT EOF(lun) AND line EQ '') DO BEGIN
READF, file, x, y ; алгоритм сортировки данных между данными и комментариями
IF N_ELEMENTS(x_value) EQ 0 THEN BEGIN ;здесь я вероятно неверно трактую, что комментарий это пустая строка (но как различить различный вид string?)
x_value = x ; инитиализация, как одна переменная
y_value = y ; инитиализация
ENDIF ELSE BEGIN
x_value = [x_value,x] ;сооружение array из одиночных переменных
y_value = [y_value,y] ;сооружение array
ENDELSE
ENDWHILE
measurement = FLTARR(y_value); float array, здесь будут сохранены данные
date = STRARR(y_value) ; string array, годы будут сохранены в ASCII
ln = 0 ; указатель строки
WHILE NOT EOF(y_value) DO BEGIN ;
table = str_sep(strtrim(strcompress(y_value), 2)) ; построение 2 мерной Stringarray
date[y_value] = table[1] ;первая колонка годы
measurement[y_value] = table[2] ;вторая колонка данные
ln = ln + 1 ;переход к следующей строке
ENDWHILE
FREE_LUN,lun
STOP
PLOT, table[1:2,*], Title = "А", XTitle = "В", YTitle = "С" ;собственно плот
END



Большое спасибо за любую помощь