AWK. Обработка текстовой информации.
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > AWK. Обработка текстовой информации.

AWK. Обработка текстовой информации.

Ответ
Поиск в этой теме
Непрочитано 29.04.2011, 16:19 #1
AWK. Обработка текстовой информации.
hwd
 
C, C++, C#
 
С-Пб.
Регистрация: 07.10.2009
Сообщений: 2,762

Освоить можно за пару вечеров.
AWK
Почитал это и это.
Soft
Нашел под форточку это.
Область применения
Предполагаю, что данный язык и софтина могут быть полезными в том числе и лиспописателям (для обработки строковой информации), поскольку из лиспа выход на командную строку форточки имеется, а представленные в AWK возможности, на мой взгляд, могут нередко пригодиться...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
Просмотров: 6045
 
Непрочитано 29.04.2011, 18:51
#2
Pastor

это только кличка
 
Регистрация: 22.10.2006
Москва
Сообщений: 252


А я бы преобразовывал тексты, подобные представленному в примере, в формат XML или просто в двумерный динамический массив, а дальше обрабатывал бы их как душе угодно используя всю мощь того же LINQ... и не заморачивался изучением самодельного, никому не известного языка и мутной софтины к нему.
Ведь собственно преобразование не представляет проблемы: разделитель записей - символ перевода строки, разделитель полей - один или более подряд идущих пробелов или знак табуляции. Т.е. на входе - банальная таблица (ИМХО).

p.s.
Чего вдруг ты этим заинтересовался?
__________________
...в шее моей жилы железные, и лоб мой - медный...

Последний раз редактировалось Pastor, 29.04.2011 в 18:57.
Pastor вне форума  
 
Автор темы   Непрочитано 29.04.2011, 19:37
#3
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Pastor Посмотреть сообщение
А я бы преобразовывал тексты, подобные представленному в примере, в формат XML или просто в двумерный динамический массив, а дальше обрабатывал бы их как душе угодно используя всю мощь того же LINQ... и не заморачивался изучением самодельного, никому не известного языка и мутной софтины к нему.
Ведь собственно преобразование не представляет проблемы: разделитель записей - символ перевода строки, разделитель полей - один или более подряд идущих пробелов или знак табуляции. Т.е. на входе - банальная таблица (ИМХО).

p.s.
Чего вдруг ты этим заинтересовался?
При чём тут LINQ? Представь, что тебе поставляется набор текстовой информации от некой сторонней софтины, причём не в формате xml, а нечто вроде вот такого шлака, и тебе нужно с ним программно работать...

Тут тебе LINQ to XML никоим боком не поможет. AWK можно использовать не только в Windows, но и в Unux-системах (под неё изначально и была написана). Насчёт "мутной софтины" ты переборщил - не известна тебе, не значит, что не пользуется популярностью. У тех же линуксоидов она на весьма хорошем счету, а их я бы не стал относить к категории "чайников", да и разработчики AWK довольно таки известные люди (просто разработана она была ещё очень давно - в 70-х).

Текстовые документы не ограничиваются XML-форматом.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 29.04.2011, 20:00
#4
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от hwd Посмотреть сообщение
Предполагаю, что данный язык и софтина могут быть полезными в том числе и лиспописателям
Я ни разу не слышал про сложности у листописателей с парсингом строковой информации. Я не представляю себе такой текстовой конструкции с которой у лиспа-бы возникли проблеммы (имеются в виду - он бы был не достаточно эффективен) - но без труда могу предложить вариант обработки - где "классические" технологии обработки текста будут "нервно курить в сторонке" по сравнению с функциональными языками. Попробуй обработать "стандартными средствами" текстовой аналог лямбды с учетом вложенности (детали синтаксиса не важны). Ихмо в данном примере лисп выйграет с большим отрывом.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 29.04.2011, 20:04
#5
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Дима_ Посмотреть сообщение
Я ни разу не слышал про сложности у листописателей с парсингом строковой информации.
Я предоставил линк на информацию, которая, как мне кажется может быть интересной. Каждый решает для себя сам, нужно ему это или нет. Могу впредь не давать линков, дабы не раздражать никого.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 29.04.2011, 20:17
#6
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от hwd Посмотреть сообщение
Могу впредь не давать линков, дабы не раздражать никого.
Не надо - так критично - я же тоже имею право на свое мнение - уж от этого (в смысле первого) сообщения я точно раздражения не испытываю.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 29.04.2011, 20:49
#7
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от hwd Посмотреть сообщение
Я предоставил линк на информацию, которая, как мне кажется может быть интересной. Каждый решает для себя сам, нужно ему это или нет. Могу впредь не давать линков, дабы не раздражать никого.
hwd, вы молодец что занимаетесь такими поисками, только это ну никак не интересно лиспописателю... вот если бы вы выдали пару примеров использования... тогда... можно было бы о чем то говорить... а так вместо использования зачастую готовых механизмов... вы предлагаете потратить время на изучения того, что не факт, что пригодится
gomer вне форума  
 
Автор темы   Непрочитано 29.04.2011, 21:57
#8
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от gomer Посмотреть сообщение
hwd, вы молодец что занимаетесь такими поисками, только это ну никак не интересно лиспописателю... вот если бы вы выдали пару примеров использования... тогда... можно было бы о чем то говорить... а так вместо использования зачастую готовых механизмов... вы предлагаете потратить время на изучения того, что не факт, что пригодится
gomer, ты как всегда "в домике": пост #5 умышленно пропускаешь мимо своих светлых очей, ради того, чтобы начать очередной "баян"...
За всех лиспописателей так смело расписываешься - ну да ладно, может ты где-то предварительный опрос среди них провёл, да я не увидел... Несколько раз прочти #5 (первую часть), может дойдёт смысл написанного мною, хотя... это вряд ли...
Нужен пример текстового файла? Пример был дан выше, и опять же ты его не увидел, а всё потому, что тебе на самом деле глубоко фиолетова тема топика, а 5 копеек вставляешь ради флуда. Если к этому моменту у тебя резко разгорелось желание - тут документы в указанном мною выше формате: можешь экспериментировать, обрабатывая их на автолиспе и доказывая кому-то (только не мне) что-то (не знаю что). С лёгкостью напишешь на лиспе - флаг тебе в руки - я же не против... Только не нужно мне об этом потом отчитываться (лучше ещё раз прочти первую часть #5 - чем чёрт не шутит, может дойдёт смысл написанного), gomer - я совершенно спокойно проживу без этой информации.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 29.04.2011, 22:43
#9
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от hwd Посмотреть сообщение
Я предоставил линк на информацию, которая, как мне кажется может быть интересной. Каждый решает для себя сам, нужно ему это или нет.
Очень похоже на бросание кости
Цитата:
Сообщение от hwd Посмотреть сообщение
разработана она была ещё очень давно - в 70-х
Заметно
Цитата:
Сообщение от hwd Посмотреть сообщение
нечто вроде вот такого шлака
Это всего лишь спецификация...
Цитата:
Сообщение от hwd Посмотреть сообщение
тут документы в указанном мною выше формате:
ага а вот и сам файл...
Цитата:
Сообщение от hwd Посмотреть сообщение
копеек вставляешь ради флуда
Бывает, каюсь, когда тему можно закрывать, по моему мнению... тут не тот случай...
Offtop: hwd, вы же санктпетербуржец, откуда столько злости и неприязни в вас?
gomer вне форума  
 
Непрочитано 30.04.2011, 06:26
#10
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Я тоже не вижу причин для "лиспописателей" использовать какие-то сторонние утилиты для парсинга текстовых файлов. Как раз это можно очень эффективно делать на LISP. Например, мне часто приходится делать прасинг файлов рабочих наборов Mapinfo, а это просто программа на языке MapBasic. В ней может быть и все, что угодно из Basic, и множество специальных директив. И ничего, LISP справляется. А вот на Pascal, между прочим, это сделать гораздо сложнее.

Но, даже если предположить, что понадобится парсить какую-то лабуду с очень сложной информацией, я воспользуюсь не какой-то сомнительной утилитой, а проверенными средствами - Perl (с его потрясающими возможностями разбора регулярных выражений) или PHP (то же, но полегче для программиста). Причем воистину кроссплатформенными.

Если уж пользоваться "выходом на командную строку форточки" - для запуска чего-то. Вот и запущу соответствующий интерпретатор. Если мне будет лень или некогда свою LISP-функцию написать. Да и на "командную строку" выход не обязателен. Это же для начинающих "форточников".
ShaggyDoc вне форума  
 
Непрочитано 01.05.2011, 01:15
#11
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Я по слабости ума так и не понял которого из них ты обос...л?
Может лучше обойтись без комментариев?
Олег (jr.) вне форума  
 
Непрочитано 01.05.2011, 20:11
#12
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


ShaggyDoc, парсинг текстовых строк - дело немного второе. Первая проблема - обработка нестандартных кодировок (например, UTF-8) - с этим Autolisp, насколько я знаю, "в пролете".
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 01.05.2011, 22:11
#13
Vov.Ka


 
Регистрация: 21.07.2008
Луцьк
Сообщений: 179


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
с этим Autolisp, насколько я знаю, "в пролете".
Auto да, но Visual нет
Код:
[Выделить все]
 (defun vk_WriteUTF8Stream (Stream FileName / ADODBStreamObj Result)
    (if (setq ADODBStreamObj (vlax-create-object "ADODB.Stream"))
        (progn (setq
                   Result (vl-catch-all-apply
                              (function
                                  (lambda ()
                                      (vlax-put ADODBStreamObj "Charset" "utf-8")
                                      (vlax-invoke ADODBStreamObj "Open")
                                      (vlax-invoke-method ADODBStreamObj
                                                          "WriteText"
                                                          Stream
                                                          0
                                      )
                                      (vlax-invoke ADODBStreamObj
                                                   "SaveToFile"
                                                   FileName
                                                   2
                                      )
                                  )
                              )
                          )
               )
               (vlax-release-object ADODBStreamObj)
               (if (not (vl-catch-all-error-p Result))
                   FileName
               )
        )
    )
)
;;;(vk_WriteUTF8Stream "тест" "C:\\Temp\\test.txt")
(defun vk_ReadUTF8Stream (FileName / ADODBStreamObj Result)
    (if (and (setq FileName (findfile FileName))
             (setq ADODBStreamObj (vlax-create-object "ADODB.Stream"))
        )
        (progn (setq
                   Result (vl-catch-all-apply
                              (function
                                  (lambda ()
                                      (vlax-put ADODBStreamObj "Charset" "utf-8")
                                      (vlax-invoke ADODBStreamObj "Open")
                                      (vlax-invoke ADODBStreamObj
                                                   "LoadFromFile"
                                                   FileName
                                      )
                                      (vlax-invoke-method ADODBStreamObj
                                                          "ReadText"
                                                          -1
                                      )
                                  )
                              )
                          )
               )
               (vlax-release-object ADODBStreamObj)
               (if (not (vl-catch-all-error-p Result))
                   Result
               )
        )
    )
)
;;;(vk_ReadUTF8Stream "C:\\Temp\\test.txt")
Vov.Ka вне форума  
 
Непрочитано 01.05.2011, 22:26
#14
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


Прикольный код. Браво!!!
Sleekka вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > AWK. Обработка текстовой информации.



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Генная инженерия - сфера инженерного проектирования. FOXAL Разное 106 15.10.2010 13:59
Как привести стили текстовой информации чертежа к российским стандартам? morbias AutoCAD 43 25.05.2009 23:28