Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Text::CSV, Не работает с рускими символами 
:(
    Опции темы
Sadok
Дата 6.7.2005, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 2.11.2004

Репутация: 1
Всего: 2



Сабжевый модуль (впрочем как и Text::CSV::Simple и Text::CSV_XS) не хочет обрабатывать csv-файлы, если в них содержаться русские буквы. Просто валится с Failed on <тут строка разбора>. С англиским языком проблем не возникает. use locale крутил - не помогает.

This is perl, v5.8.3 built for MSWin32-x86-multi-thread


Куда бы покрутить или посоветуйте рабочий модуль. Спасибо.
PM   Вверх
sharq
Дата 8.7.2005, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 23
Всего: 28



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

Вот те кусок модуля:
Код

$column =~ /[^\t\040-\176]


Если тебе так необходимо использовать этот модуль, то пиши на латинице!


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
Sadok
Дата 9.7.2005, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 2.11.2004

Репутация: 1
Всего: 2



sharq
Это да. Даже менял на $column =~ /[^\t\040-\337], но не помогло. Пришлось брать регексп из Mastering Regular Expressions
PM   Вверх
sharq
Дата 13.7.2005, 00:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 23
Всего: 28



Цитата(Sadok @ 9.7.2005, 20:03)
Пришлось брать регексп из Mastering Regular Expressions

интересно, что именно и как получилось?



--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
Sadok
Дата 13.7.2005, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 2.11.2004

Репутация: 1
Всего: 2



sharq
Цитата
интересно, что именно и как получилось?

Собственно, сам регексп вот:
Код
sub parse_csv1 {
    my $text = shift;      # record containing comma-separated values
    my @fields  = ( );
    
    while ($text =~ m{
        # Either some non-quote/non-comma text:
        ( [^"',] + )
        
        # ...or...
        | 
        
        # ...a double-quoted field: (with "" allowed inside)
        
        " # field's opening quote; don't save this
        (   now a field is either
        (?:     [^"]    # non-quotes or
        |
        ""      # adjacent quote pairs
        ) *  # any number
        )
        " # field's closing quote; unsaved
        
        }gx)
            {
                if (defined $1) {
                    $field = $1;
                    } else {
                        ($field = $2) =~ s/""/"/g;
                    }
                push @fields, $field;
            }
        return @fields;
    }


Минус один он пустые поля пропускает, т.е. пропарсив
Код
qq /"Раз", "", "Три"/;

мы получим
Код
$fields[0] = "Раз";
$fields[1] = "Три";

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0450 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.