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

Любые обсуждения, не нарушающие правил форума.

Модератор: Модераторы

Re: На каком языке логичней сделать эту программу вместо Паскаля

Сообщение Alexx2000 » 22.07.2011 14:57:30

NTFS писал(а):3) GetSplitPart1 - первая часть строки, по заданному разделителю
4) GetSplitPart2 - вторая часть строки, по заданному разделителю

Функция ExtractDelimited из модуля StrUtils
Аватара пользователя
Alexx2000
постоялец
 
Сообщения: 488
Зарегистрирован: 25.10.2006 00:22:07
Откуда: Мытищи

Re: На каком языке логичней сделать эту программу вместо Паскаля

Сообщение NTFS » 22.07.2011 17:24:54

Смысл в том, что я умею вспахать поле лопатой, хотя трактор с плугом явно удобней.
Потому и интересуюсь у профи, какой инструмент лучше.
NTFS
постоялец
 
Сообщения: 388
Зарегистрирован: 05.11.2007 14:57:50
Откуда: Краснодар

Re: На каком языке логичней сделать эту программу вместо Паскаля

Сообщение alex208210 » 22.07.2011 22:40:54

Что бы вспахать трактором.. надо
накопить денег на трактор,
купить его,
купить плуг,
суметь его подсоеденить к трактору, одному это сложно сделать,
купить салярку,
масло,
бензин в пускач,
суметь завести пускач (это практически не реально если все идеально не настроено), суметь завести пускачем дизель, это не реально если фарсунки и насос не отрегулированы... да да это вам на форд фокус..и сделать это не всегда просто
разобраться с управлением трактора,
понять принцип работы плуга, его нельзя опускать до начала движения трактора, нельзя вытягивать плуг не в движениии..
настроки плуга.. там три тяги . их нужно регулировать под нужную глбину, лево, право... чуть ниже плуг. трактор встанет.. плуг не вытянешь из земли.. начнешь вытягивать лопнут гидравлические шланги..
и это все при иделально настроенном двигателе, коробке, ходвых трактора чего практически не бывает))

а с лопатой все понятно.. наступил, поднял, перевернул ))

есть у вас столько времени что бы разобраться в новом языке программирования? они же все си подобные.. тобишь альтернативные паскалю..
alex208210
постоялец
 
Сообщения: 207
Зарегистрирован: 12.05.2010 13:16:51

Re: На каком языке логичней сделать эту программу вместо Паскаля

Сообщение Сквозняк » 24.07.2011 22:28:05

bw писал(а):> на интерпретаторе не той версии
Такие же как и на компиляторе любого другого языка. Обратная совместимость в мажорной версии имеется (написанное на 2.3 будет работать на 2.7, наоборот -- нет :-).
Если не использовать новые фичи, то у программ на паскале совместимость хорошая. С питоном же приключаются нехорошие вещи. Установил из репозитория на гентообразный линукс питоновый yum. Сразу полезли ошибки с неправильными типами переменных, как-то их заткнул, стало возможно искать через yum rpm в репозиториях, но ставить их всё равно было нельзя - дальше не патчено :D Если бы каждая программа на питоне имела свой собственный интерпретатор, написанный на паскале, то всё было бы намного проще.
Сквозняк
энтузиаст
 
Сообщения: 1123
Зарегистрирован: 29.06.2006 22:08:32

Re: На каком языке логичней сделать эту программу вместо Паскаля

Сообщение bw » 25.07.2011 01:07:27

Тут нужно винить маинтайнера yum'а в дистрибутиве. Ведь скорее всего проблема в не корректных зависимостях, если не в с самой (кривой) версии yum. Т.е. дело не в версии интерпретатора, а в версии используемых этим yum'ом сторонних пакетов. Другими словами, Python и его батареек с обратной совместимостью проблем нет, а вот как там свои пакеты/модули выпускают сторонние разработчики и как всё это дело связывают в дистрибутивах никому не известно. Языки со статической типизацией в таком случае в более выигрышном положении конечно.

..bw
Аватара пользователя
bw
постоялец
 
Сообщения: 359
Зарегистрирован: 01.12.2005 11:36:23
Откуда: Усть-Илимск

Re: На каком языке логичней сделать эту программу вместо Паскаля

Сообщение AlexVinS » 31.07.2011 17:51:54

* По поводу обработки строк: много вкусностей видел в JCL, а то чего там нет явно проще релизовать через регулярные выражения.
* Аналоги сишнго a?b:c есть в Math.
* Про обработку строк вообще плюсую Перл (если сложную обработку надо написать лаконично).
* А вообще раз "Единственный язык общего назначения, которым я владею профессионально." это паскаль то ни на каком другом быстрее качественно не получится.
Аватара пользователя
AlexVinS
новенький
 
Сообщения: 95
Зарегистрирован: 27.01.2009 01:18:01

Re: На каком языке логичней сделать эту программу вместо Паскаля

Сообщение sts » 01.08.2011 16:43:55

bw писал(а):> не сильно короче Паскаль-варианта
А ты выкини из варианта в Pascal эти магическии функции и используй только батарейки :-). Ну ладно, включи описание этих функций в свой пример.
Код на Python всё же более разряженным получился, может быть даже читабельнее, ну это кому как. Ведь всегда можно убрать пустые строки и вообще собирать всё в одну, только зачем. Странное желание сократить объём. Да и пример пожалуй не столь показателен в этом плане.


неее, тут дело вот вчем, у чела регулярно возникает задача - дан текстовый файл - надо распарсить его согласно неким правилам (правила отличаются от файла к файлу) и полученные данные загнать в другой файл, в данном случае sql скрипт с инсертами, тобишь импорт данных в бд. У меня бывают аналогичные периоды :)..., писать это на паскале несколько муторно, надо помнить что делает зоопарк спец. функций работы со строками, а это не совсем очевидно из названий и.п., далее, обратная история, имея готовый алгоритм - сходу непоймешь что он делает, а хочется, раз взглянул, и понятно что, куда, и зачем. если делать на регурярках то получается не менее запутанно, пока сосчитаешь скобки пока че, короче теже проблемы. охота чтонибудь простое, пример на Python тоже излишне сложен.
sts
постоялец
 
Сообщения: 431
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Re: На каком языке логичней сделать эту программу вместо Паскаля

Сообщение bw » 02.08.2011 05:03:29

> пример на Python тоже излишне сложен
Ну так покажите пример на Perl, Bash, Tcl и т.д. Тут Perl очень часто упоминается, но кроме слов больше ничего, видимо не так просто реализовать алгоритм на нём? Мне самому любопытно взглянуть.
Пример на Python имеет меньше букв, более разряжен, по моему это делает чтение проще. А вообще я в суть кода не вникал, попросту переписал на др. языке, а если понять что там делается и посмотреть на входные данные, то и результат мог бы получиться более другим. И всё же я считаю что пример не так уж показателен и не может быть заметно упрощён ни на одном языке. Сократить число строк можно и на Python, но это отрицательно скажется на читаемости.
Вообщем ждём Perl'а.

..bw
Аватара пользователя
bw
постоялец
 
Сообщения: 359
Зарегистрирован: 01.12.2005 11:36:23
Откуда: Усть-Илимск

Re: На каком языке логичней сделать эту программу вместо Паскаля

Сообщение Brainenjii » 02.08.2011 06:31:02

Если не сложно, покажите текст задачи ^_^ А то разбираться в чужом коде немножко лень ^_^
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: На каком языке логичней сделать эту программу вместо Паскаля

Сообщение sts » 02.08.2011 10:48:39

bw писал(а):> пример на Python тоже излишне сложен
Ну так покажите пример на Perl, Bash, Tcl и т.д. Тут Perl очень часто упоминается, но кроме слов больше ничего, видимо не так просто реализовать алгоритм на нём? Мне самому любопытно взглянуть.
лично я не владею...

bw писал(а):Пример на Python имеет меньше букв, более разряжен, по моему это делает чтение проще. А вообще я в суть кода не вникал, попросту переписал на др. языке, а если понять что там делается и посмотреть на входные данные, то и результат мог бы получиться более другим. И всё же я считаю что пример не так уж показателен и не может быть заметно упрощён ни на одном языке. Сократить число строк можно и на Python, но это отрицательно скажется на читаемости.
Совершенно не критикую, сокращение количества строк не самоцель, я както на досуге пытался сформулировать требования к самопальному языку решения такой задачи, но дальше прототипа не дошло, вчера чето сходу не нашел исходники (чтоб вспомнить), хотел примеры в первом своем посте привести, дома надо посмотреть.
sts
постоялец
 
Сообщения: 431
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Re: На каком языке логичней сделать эту программу вместо Паскаля

Сообщение Сквозняк » 02.08.2011 17:27:41

sts писал(а): если делать на регурярках то получается не менее запутанно, пока сосчитаешь скобки пока че, короче теже проблемы. охота чтонибудь простое, пример на Python тоже излишне сложен.
Вполне логично, коммандная строка в униксе разработана не для простоты понимания и изучения, один линуксовый аналог переименования группы файлов по маске чего стоит. Постоянно нужно лезть в шпоргалку чтобы подглядеть синтаксис а досовский помню до сих пор, хоть и нет повода им пользоваться. Если надо проще и часто, реализуй кусочек регулярных выражений с таким синтаксисом, какой тебе удобен. Можно делать не с нуля, сойдёт и обёртка.
Сквозняк
энтузиаст
 
Сообщения: 1123
Зарегистрирован: 29.06.2006 22:08:32

Re: На каком языке логичней сделать эту программу вместо Паскаля

Сообщение B4rr4cuda » 20.08.2011 01:18:23

как-то так, это фактически прямой перевод паскалевского кода, лишь с некоторыми перловскими фичами:
Код: Выделить всё
#!perl -w
$CountryLine=();
if (open(CountryFile,"country")){
  @CountryLine=<CountryFile>;
}
open(LinesFile,$ARGV[0])||die "file doesnt exists";
$tekcountry = '';
while (<LinesFile>){
    $line=$_;
   
    if (! $line=~/[^@]/) {  next; }
    @list1=split('@',$line);
    $tekcountry = $list1[1];
    print $tekcountry;
    if (!$Countries=~/$tekcountry/) {
      $Countries[$#Countries+1]=$tekcountry;
    }
    if($list1[10]=~/[^\s]/){
      %props = ();
    }
    if ($list1[12]=~/[^\s]/){
      $props{'Источник'} = $list1[12]; 
    }
   
    if($list1[3]=~/\//){
      @x=split('/',$list1);
      $floor=$x[0];
      $floorall=$x[1];
    } else
    {
     $floor=$list[3];
     $floorall=$list[4];
    }
     $props{'Этаж'}      = $floor;
     $props{'Этажность'} = $floorall;

       foreach (@Countries) { ++$i; if ($Countries[$i-1] == $_) { $tekcountryI = $i-1 }}

       #Было откровенно лениво это разбирать.. тут заюзывается регексп
       $x='';#StrToIntWt0(GetSplitPart1orAll(GetSplitPart1orAll(GetSplitPart1orAll(GetSplitPart1orAll(List1[5],','),'.'),'/'),'\')),
     
       $list1[8]=~s/[^0-9]//g;
       $list1[8]/=1000;
     
      open(Out,">out_$ROOMTYPE_ID.sql'") or die "Can't open up file: $!\n";
      format Out =
                  INSERT INTO ROOMS (ID, OPERTYPE_ID, ROOMTYPE_ID,
                      COUNTRY_ID, OWNER_ID, REMARK, DATEENTER, LAST_UPDATE, PRICE, S, PROPSTORE, CONTACT)
                      VALUES (GEN_ID(GEN_ROOMS_ID,1), 1,
                      @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<,
                      $ROOMTYPE_ID,       
                      @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<,
                      $tekcountryI
                     -1,
                     '@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<',
                     PrepStringForSQLFB(' '.$list1[2].$list1[13].$list1[16].$list1[17])
                     @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<,
                     $list1[11] or 'Now'
                     @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<,
                     $list1[11] or 'Now'
                     @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<,
                     $list1[8]
                     @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<,
                     $x
                     '@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<',
                     PrepStringForSQLFB(%props)
                     '@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<'
                     PrepStringForSQLFB($list1[10])
                     );
      .
       write Out;

        open(Out1,">country") or die "Can't open up file: $!\n";
        print(Out1,@Countries);
        open(Out2,">country.sql'");
        $i=0;
        foreach (@Countries) { print(out2,"INSERT INTO COUNTRIES(ID, CITY, COUNTRY) VALUES ($i,'city','$_');"); $++;}
  }


код грязноватый и непрофессиональный.. я не слишком часто пишу на перле.
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Пред.

Вернуться в Потрепаться

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

Рейтинг@Mail.ru
cron