Тема: Помогите с программой

Есть, например, такой текстовый файл:

Вася  1  2 16  Утро
Коля  2 14  1  Утро
Петя  3 12 12  Утро
Миша  4 25 24  День
Вася  5 18 17  День
Петя  6 99 15  День
Вася  7 26 45  Вечер
Маша  8 63 64  Вечер
Саша  9 15 77  Ночь
Вася 10 84 36  Ночь

Количество строк неизвестно.

Нужного получить текстовый файл вида:

Вася  1  2 16  Утро
Вася  5 18 17  День
Вася  7 26 45  Вечер
Вася 10 84 36  Ночь

Re: Помогите с программой

Лабораторная работа?
1.Читаешь строку файла в цикле
2.Находишь первое слово строке
3.Если оно твоё, записываешь эту строку в новый файл
Удачи!

Re: Помогите с программой

Не пашет чего-то

(defun c:sdr2txt ( / fcontent DataLine NumPt XCoord YCoord ZCoord MesurementCode Line2File)
  (setq fcontent (open (getfiled "Выберите файл" "H:\\" "sdr" 4) "r"))
  (setq DataLine (read-line fcontent))
  (setq NewTxtFile (open "NewTxtFile.txt" "w"))
  (setq DerivationCode (substr DataLine 1 4))
                 (cond (
                (= DerivationCode (or "08TP" "08KI"))
                (progn
                        (Setq NumPt (substr DataLine 5 16)
                              XCoord (substr DataLine 21 16)
                              YCoord (substr DataLine 37 16)
                              ZCoord (substr DataLine 53 16)
                              MesurementCode (substr DataLine 69 16)
                              Line2File (vl-string-left-trim " " (strcat NumPt XCoord YCoord ZCoord MesurementCode))
                    );setq
                            (write-line Line2File NewTxtFile)
                );progn
               )
             );cond2
  (while (/= DataLine nil)
        (setq DataLine (read-line fcontent))
              (cond (
             (/= DataLine nil)
                     (setq DerivationCode (substr DataLine 1 4))
                 (cond
               (
                (= DerivationCode (or "08TP" "08KI"))
                (progn
                        (Setq NumPt (substr DataLine 5 16)
                              XCoord (substr DataLine 21 16)
                              YCoord (substr DataLine 37 16)
                              ZCoord (substr DataLine 53 16)
                              MesurementCode (substr DataLine 69 16)
                              Line2File (vl-string-left-trim " " (strcat NumPt XCoord YCoord ZCoord MesurementCode))
                    );setq
                            (write-line Line2File NewTxtFile)
                );progn
            )
             );cond2
           )  
          );cond1
  );while
  (close fcontent)
  (close NewTxtFile)
)

Re: Помогите с программой

Поставь останов в конце этой строки
(setq derivationcode (substr dataline 1 4))
посмотри значение derivationcode (там обычный текст, типа "Вася")
А с чем ты сравниваешь? -  (= derivationcode (or "08TP" "08KI"))

Re: Помогите с программой

Исходный текстовый файл имеет вид:

[quote=
00NMSDR33 V04-04.02     30-ЁЮН-11 10:13 111111
10NMRADUGA          121111
06NM1.00000000     
01NM:SET550RX V30-21 113308SET550RX V30-21 11330831                                0.000           
08KI              t1261821.285      3294913.714     105.895                         
08KI              t2261784.463      3294902.973     105.980                         
03NM0.000           
08TP              z2261789.626      3294981.256     106.765                         
08TP              z3261830.388      3294987.643     106.942                         
08TP              z1261752.637      3294945.866     107.150                         
08TP              z4261828.780      3294915.347     106.603                         
08TP              z5261760.813      3294914.929     106.928                         
03NM0.025           
08TP           rstv1261799.657      3294926.743     -1.430          RSTV           
08TP           rstv2261797.570      3294923.193     -1.440          RSTV           
08TP           rstv3261796.197      3294923.961     -0.653          RSTV           
08TP           rstv4261796.009      3294924.619     -0.636          RSTV           
08TP           rstv5261802.478      3294934.800     -0.667          RSTV           
08TP           rstv6261802.054      3294935.041     -0.664          RSTV           
08TP           rstv7261797.732      3294936.884     -0.624          RSTV           
08TP           rstv8261795.953      3294937.955     -0.647          RSTV           
08TP           rstv9261813.907      3294944.857     -1.430          RSTV           
08TP          rstv10261817.275      3294947.577     -1.419          RSTV           
08TP          rstv11261817.482      3294948.107     -1.349          RSTV           
08TP          rstv12261817.247      3294948.919     -1.354          RSTV           
08TP          rstv13261815.800      3294948.577     -1.350          RSTV           
08TP          rstv14261816.130      3294947.718     -1.360          RSTV           
08TP          rstv15261820.138      3294947.269     -1.461          RSTV           
08TP          rstv16261824.294      3294948.378     -1.458          RSTV

Нужно "вытащить" из этого файла номер точки, координаты x,y,z и описание точки.
Номер точки - это 16 символов, начиная с 5-й позиции в строке.
Координата Х - это 16 символов, начиная с 21-й позиции в строке
Координата Y - 16 символов с 37- позиции.
И т.д.
Первые 4 символа в каждой строке - это код измерения. Нужны только 08TP и 08KI.

Alan aka Александр Назаров]
Поставь останов в конце этой строки (setq derivationcode (substr dataline 1 4)) посмотри значение derivationcode (там обычный текст, типа "Вася")

08TP