Перейти к содержанию
Форум Челябинских Автомобилистов

Программисты, расскажите как вы программируете. Несложные задачки, типа считалки.


Рекомендуемые сообщения

Закрепленные сообщения

Не то чтоб в деталях носом натыкать, а вкратце-концептуально.

 

Н-р

 

- создаю общую картинку, продумываю интерфейс

- распределяю кнопки/окна/вкладки

- заполняю кодом как все это должно работать

- тестирую

- пишу хелп.

 

Или

 

- пишу хелп

- в соответствии с хелпом создаю картинку

- и т.д.

 

И. в в. что задачки несложные, блок-схем и алгоритмов особо продумывать не надо, в ехелях все продумано и работает.

 

На тематических сайтах бывал, листал, но там все такие умные что и вопрос сформулировать непонятно как.

Ссылка на комментарий
Поделиться на другие сайты

  • 3 месяца спустя...
Незакрепленные сообщения

в контексте используемых инструментов.

задача.

перевести данные из одной программы в другую (из quick sales в битрикс24).

обе поддерживают передачу через эксел (csv)

вторая читает одна строка - одна запись.

а первая выдает от одной до десяти записей в одной строке.

т.е. нужен конвертер преобразующий одну запись в одну строку.

 

написание на паскале с парсингом строк занятие интересное, но воспользовался awk, получилось примерно так:

{a=1;print $1 ";" $(1+a) ";" $(2+a) ";" $(3+a) ";" $(4+a)}
($6!="") {a=5;print $1 ";" $(1+a) ";" $(2+a) ";" $(3+a) ";" $(4+a)}
($10!="") {a=9;print $1 ";" $(1+a) ";" $(2+a) ";" $(3+a) ";" $(4+a)}
($14!="") {a=13;print $1 ";" $(1+a) ";" $(2+a) ";" $(3+a) ";" $(4+a)}
($17!="") {a=17;print $1 ";" $(1+a) ";" $(2+a) ";" $(3+a) ";" $(4+a)}
($21!="") {a=21;print $1 ";" $(1+a) ";" $(2+a) ";" $(3+a) ";" $(4+a)}
($26!="") {a=25;print $1 ";" $(1+a) ";" $(2+a) ";" $(3+a) ";" $(4+a)}
($30!="") {a=29;print $1 ";" $(1+a) ";" $(2+a) ";" $(3+a) ";" $(4+a)}
($34!="") {a=33;print $1 ";" $(1+a) ";" $(2+a) ";" $(3+a) ";" $(4+a)}

в общем то для чего написал.

ессно, выпендриться, повысить ЧСВ

ну и вдруг кому будет полезно узнать, что awk очень удобен для обработки текстовых структурированных файлов.

 

PS: а говорят еще перл есть...

Ссылка на комментарий
Поделиться на другие сайты

Думать бесплатно реально не катит

делов осталось реально на пару вечеров колупаюсь уже неделю

 

как только вы, программисты, в кризисы работаете..

Ссылка на комментарий
Поделиться на другие сайты

О! нашел я таки свою старую программку, которая читает кусками из файла и побайтно разбирает прочитанные строки.

Писал я ее как выяснилось, чтобы подготовить обычные старые текстовые файлы (книжки) к экспорту в редакторы с автоформатированием.

Например в Word. 

Там убирались всякие пробелы в красных строках, отделялись абзацы и т.д.

Это я в 98 году книжки печатал красиво :) А тогда хитом был PageMaker.

Писана на Клиппере (dBASE, он же FoxPro).

Можно в VBA ее переписать, там синтаксис чутка поправить,  да функции строковые по другому называются. 

А так если под ДОСом запустить екзешник и счас работает.

Программы от времени почти не портятся :)

Изменено пользователем HECTOP
Ссылка на комментарий
Поделиться на другие сайты

 

 


А тогда хитом был PageMaker.

 

 

- Правда, что Вентура отдалась отцу Вындоузу? - спрашивал

командир Нортон у товарища Комманда Кома.

- Дык, - ответил тот, - Паблишер она Паблишер и есть.

и добавил: оболочки дешевые, мышами воняют(с) хроники кремниевой жизни.

 

опс, оказывается не в клинике.

 

 

офф, конечно, трите (с)

  • Плюс 2
Ссылка на комментарий
Поделиться на другие сайты

Писал я ее как выяснилось, чтобы подготовить обычные старые текстовые файлы (книжки) к экспорту в редакторы с автоформатированием.

 

Похоже, в те древние времена о комбинациях Ctrl+C / Ctrl+V люди еще не знали.. ну или тупо сразу вордом открыть

Ссылка на комментарий
Поделиться на другие сайты

Писал я ее как выяснилось, чтобы подготовить обычные старые текстовые файлы (книжки) к экспорту в редакторы с автоформатированием.

 

Похоже, в те древние времена о комбинациях Ctrl+C / Ctrl+V люди еще не знали.. ну или тупо сразу вордом открыть

Не умничай.

Ctrl+C / Ctrl+V  еще в МультиЕдите нормально работало.

Но сидеть херачить тыщу строк это надо быть е..тым на всю голову.

 

Возьми простой текстовый файл, открой его его в Ворде и попробуй его отформатировать красиво. Чтобы была нормальная красная строка, ровные края с обеих сторон и нормальные абзацы.

Сразу поймешь, что нужно удалить CRLF в конце каждой строки, пробелы в красной строке и т.д. и т.п. И + в те времена Ворд не умел печатать по две страницы на лист, а PM умел, и еще он умел печатать брошюрами, если ты понимаешь что это такое.

Изменено пользователем HECTOP
Ссылка на комментарий
Поделиться на другие сайты

А еще меня бесит, что до сих пор куча бакланов в Ворде делают красную строку или заголовок ставят в середину, набирая пробелы, Нумеруют списки, набирая цифры.

А абзацы отделяют, вставляя пустую строку.

Изменено пользователем HECTOP
Ссылка на комментарий
Поделиться на другие сайты

 

 


куча бакланов

Я бы не был столь категоричен в оценке умственных способностей человека

не все гении умеют вордом пользоваться

 

но и секретарями кто-то должен быть, да

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

печатать брошюрами, если ты понимаешь

 

Мы, колхозники, до сих пор это слово через у пишем.

 

не все гении умеют вордом пользоваться

 

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

 

А красивую картинку можно увидеть в режиме просмотра.

 

зы

кста, увидев секретаршу с грамотно настроенным редактором, априори проникаюсь уважением и к ней, и к ее боссу.

Ссылка на комментарий
Поделиться на другие сайты

Дальше в лес больше дров (с)

 

вобщем есть текст в текстовом файле

в нем есть пустые строки.

 

Надо его причесать так, чтобы в теле текста осталось не более чем по одной пустой строке подряд

а в конце файла не было НИ ОдНОЙ пустой строки

 

 var
  f00, f00b: TextFile;  
  str: string;
  i: integer; 
 Reset(f00);
  Rewrite(f00b);
  i:= 0;
  while not Eof(f00) do
  begin
    Readln(f00, str);
    //далее можно не читать, мозги напрочь замкнуло
    if Trim(str)='' then i:= i+1 else i:=0;
    if Eof(f00) then i:= i+1 else begin if (Trim(str)='') and (i = 2) then Readln(f00, str);end;
    if (not Eof(f00)) and (i < 2) then WriteLn(f00b, str); 
  end;

 

 

КАК???

Ссылка на комментарий
Поделиться на другие сайты

 

 


пустой строке подряд

что есть пустая строка?

 

 

 


if Trim(str)='' then i:= i+1 else i:=0;    

if Eof(f00) then i:= i+1 else begin if (Trim(str)='') and (i = 2) then Readln(f00, str);end;    

if (not Eof(f00)) and (i < 2) then WriteLn(f00b, str); 

заменить на

if (str<>"") then writeln(f00b,str);

либо воспользоваться более удобным инструментом и выполнить скрипт (это весь скрипт)

$0<>"" {print $0}

запуск

awk -f scr f00 > f00b

Ссылка на комментарий
Поделиться на другие сайты

В моем случае строка это либо пустая строка (''), либо строка из одних пробелов.
 
Просто if (str<>'') then writeln(f00b,str); не канает, потому как если есть подряд несколько пустых строк нужно оставить только одну,
а если эти несколько пустых строк вкрались между концом текста и концом файла, их надо удалить все.

 

А нет ли в просвещенном мире какой-нибудь команды типа Трим для строки удаляющей пробелы в начале и в конце,

но для текста, удаляющей пустые строки в начале и конце файла?

Ссылка на комментарий
Поделиться на другие сайты

Вот так

 

  while not Eof(f00) do begin
    Readln(f00, str);
    if Trim(str)='' then i:= i+1 else i:=0;
    if (i < 2) then WriteLn(f00b, str);
  end; 

 

отлично решается в середине текста

но с пустыми строками в конце реальная проблема.

 

Как оно узнАет, что после такой то строки с текстом ВСЕ остальные строки до конца файла - пустые, и переписывать их не надо?

Изменено пользователем vsv
Ссылка на комментарий
Поделиться на другие сайты

Самому противно как неизящщно получилось

но работает.

 

  Reset(f00);
  i:= 0;
  s:= 0;
  while not Eof(f00) do
  begin
    Readln(f00, str);
    s:= s+1;
    if Trim(str)='' then i:= i+1 else i:=0;
  end;
  s:=s-i;
  Reset(f00);
  Rewrite(f00b);
  i:= 0;
  while (s<>0) do
  begin
    Readln(f00, str);
    s:=s-1;
    if Trim(str)='' then i:= i+1 else i:=0;
    if (i < 2) then WriteLn(f00b, str);
  end;
  CloseFile(f00);
  CloseFile(f00b);

Ссылка на комментарий
Поделиться на другие сайты

мьсе знает толк в извращениях :)

интересная тема.

вечером подключусь.

пока вопрос.

 

 


чтобы в теле текста осталось не более чем по одной пустой строке подряд

0 - это "не более одной строки"

нафиг все равно писать эту пустую строку?

 

язык то паскаль или каждый о своем? (а то я грешным делом действительно стал перл вспоминать).

 

UPD:

чтобы было более предметно, предлагаю или фрагмент файла выложить или весь файл и что должно получиться.

Ссылка на комментарий
Поделиться на другие сайты

Нет, 0 это когда строка непустая

1 это когда одна пустая, пишем

>1 это когда не одна, одну пишем остальные не пишем

 

язык то паскаль

 

Вобщем.. ну, в Лазаре я упражняюсь

а Паскаль был еще ДОС-й, Турбо, это я в 90-х упражнялся

 

или фрагмент файла выложить или весь файл и что должно получиться

 

Нивапрос

 

весь, на входе

 

hndgh dhyn dyhjnde

hyd

 

 dddgnbyed

hyses

    htwstrgh

srth

 

 

srthh

 

 

Eof

 

а надо

 

hndgh dhyn dyhjnde

hyd

 

dddgnbyed

hyses

htwstrgh

srth

 

srthh

Eof

 

зы

 

вечером подключусь

 

спасибо агромаденное

 

только сюда не надо копать, работает же уже - лучше я потом еще что-нибудь спрошу

 

а так то достало уже - пишешь/пишешь, потом книжку открываешь какое-нибудь новое откровение вычитываешь и видишь что можно было или проще, или красивее, или еще как-нибудь но не так как сделано, и все сначала.

 

Плохо быть ламером )))

Ссылка на комментарий
Поделиться на другие сайты

а так то достало уже - пишешь/пишешь, потом книжку открываешь какое-нибудь новое откровение вычитываешь и видишь что можно было или проще, или красивее, или еще как-нибудь но не так как сделано, и все сначала.

поэтому я решил начать с основ и читаю книги, на первый раз без практики, на второй буду пробовать примеры

Ссылка на комментарий
Поделиться на другие сайты

Путь безусловно правильный, я тоже сначала так пошел

даже записался на бесплатные курсы

http://www.intuit.ru/studies/courses/13745/1221/info

и вполне успешно и досрочно выполнял уроки

 

но потом отвлекся, на пару неделек, и обнаружил

что практически надо начинать заново.

 

Забросил это дело насовсем, потом снова появилось немного времени

и решил что задачи надо решать по мере поступления

 

и крою потихоньку свои игрушки, временами спотыкаясь и поднимаясь с карячек.

 

Но если все всерьез, то для новичка одной книжкой тут не победить,

надо в этой каше повариться, и не баловаться эпизодически, а работать

и расти над собой.

Ссылка на комментарий
Поделиться на другие сайты

Забавно

 

я тут писал где-то, как мы в армии с приятелем производили эксперимент

 

    легкая разминка;

    подход к перекладине;

1: прием 100 гр., пауза 10 минут;

    повторный подход к перекладине;

    обмен впечатлениями;.

    goto 1;

 

так вот с кодированием примерно те же результаты

 

уже после первого приема можно только либо причесывать код уже написанного, предварительно сохраня исходник в другом проекте, либо

небрежно разваляся в кресле, элегантно разбрасывать кнопки лейблы и прочие компоненты по форме, с тем, чтобы наутро, ужасаясь содеянному,

удостовериться что ничего из ранее написанного и отдельносохраненного не порушено, и только после с интересом просмотреть, а что э это я там

сотворил, с тем чтобы уловить основные идеи в новый проект, и накоденное накануне безжалостно похерить в корзину.

 

Вобщем, мое резюме - влияет, и примерно одинаково и на физические процессы, и на чиста виртуальные построения.

Ссылка на комментарий
Поделиться на другие сайты

подумалось тут.

 

для красивых решений можно использовать регулярные выражения.

ими можно обрабатывать как отдельные строки, так и весь массив текста.

это просто направление без конкретных советов, чтобы было понятно, например в данном контексте "пустая строка" определяется как:

[^ ]

регулярные выражения, вроде как, поддерживается всеми языками, напрямую или через функции.

 

по поводу последнего текста, 2-х проходного.

учитывая, что в начале текста нет пустых строк, а первый проход отсекает пустые строки, то логично обрабатывать текст с конца.

например загрузив весь текст или в строковый массив или в объект TMemo и там его парсить.

Ссылка на комментарий
Поделиться на другие сайты

Для текстового файла пустая строка это N пробелов, где N от 0 до... ну пусть 32000.

А в конце каждой строки пустой или непустой стоит пара CRLF, т.е. пара символов chr(13)+chr(10)

 

Завтра доделаю свой ГСЧ и будет время переписать на VBA функцию потокового чтения из файла с последуюущим посимвольным разбором прочитанного, в том числе и для выделения строк.

Изменено пользователем HECTOP
Ссылка на комментарий
Поделиться на другие сайты

  • 2 месяца спустя...

Теперь «F.D.O.M.» выдавала видеоотчет. Выглядел он так: у большого монитора в условном подобии студии сидели несколько виртуальных фигурок простецкого вида (каждый раз система моделировала их заново, чтобы не создавать впечатления, будто у нее внутри обитают некие искусственные существа). Картинка, на которую смотрели фигурки, соответствовала тому, что видели камеры «Либерейтора». При появлении врагов фигурки просыпались и вступали в диалог, напоминающий эмоциональное ток-шоу категории «B».

 

Вряд ли такая передача выдержала бы конкуренцию на телевидении. Но в смысле public relations смоделированный подобным образом диалог чрезвычайно выгодно отличался от переговоров живых операторов.

 

Военные обычно говорили коротко и по делу:

 

– Долбани-ка еще раз вон по тому ублюдку в канаве.

 

А виртуальные фигурки в той же ситуации изъяснялись так:

 

– Ужасно, что приходится открывать огонь по живому человеку. Но когда я думаю о наших ребятах, в которых может попасть пущенная им пуля, когда я думаю, что он может прятать в кармане гранату или пистолет, я понимаю – этот трудный, практически невозможный выбор все-таки придется сделать...

 

http://www.nix.ru/computer_hardware_news/hardware_news_viewer.html?id=172863

 

Те, кто осилят до этих слов, осилят и остальное.

 

зы

и верните уже темку в свой раздел - ну натурально невозможно общаться, еле нашел.. до чего довели планету эти фигляры-модераторы

Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Сейчас на странице   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...