За последние 24 часа нас посетили 17858 программистов и 1652 робота. Сейчас ищут 1144 программиста ...

Альтернатива MAX'а для CSV

Тема в разделе "Вопросы от блондинок", создана пользователем Mr.Gordon, 3 окт 2007.

  1. Mr.Gordon

    Mr.Gordon Активный пользователь

    С нами с:
    2 авг 2007
    Сообщения:
    37
    Симпатии:
    0
    Есть файл test.txt:
    Код (Text):
    1. Name1;;opus1;;1{?n?}
    2. Name2;;opus2;;2{?n?}
    3. Name3;;opus3;;3{?n?}
    Вот такой скрипт у меня его обрабатывает:
    PHP:
    1. <?
    2. $f = file("test.txt");
    3. $fi=implode("\n",$f);
    4. $file=explode("{?n?}",$fi);
    5.  
    6. $c=count($file);
    7. $c2=explode(";;",$file[$c]);
    8. $count=$c2[3];
    9. print "$count";
    10. ?>
    Вобщем нужно узнать максимальное значение поля id (последнее)...этот скрипт работал бы, если бы не одно но...$c возвращает примерно на 2 строчки больше чем есть в файле test.txt....тоесть 2 пустых строчки....

    Вобщем вопрос: Как мне узнать максимальное значение id.....
     
  2. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    Не, народ. Так ничего не получится. Иногда надо ещё и головой думать.

    1. Пользуемся поиском
    2. Смотрим на пару тем ниже http://php.ru/forum/viewtopic.php?t=7929
    3. Что такое CSV . Ну и где здесь запятые

    // тема поехала в блондинки
     
  3. Mr.Gordon

    Mr.Gordon Активный пользователь

    С нами с:
    2 авг 2007
    Сообщения:
    37
    Симпатии:
    0
    Я туда уже смотрел =)
    У меня другой случай....
    И почему в Блондинки...?
     
  4. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    Ну смотри.
    Твой скрипт работал бы, если бы не было лишних строчек. Объяснение откуда они берутся я тебе дал(ссылка)
    Ты смотрел и у тебя «другой случай». А вот мне показалось, что тот же.
    Читаешь файл, вычленяешь id и сравниваешь с некой переменной, которая в начале скрипта определена в 0. Если вытянутое значение больше переменной, то присваеваешь это значение ей.
     
  5. Mr.Gordon

    Mr.Gordon Активный пользователь

    С нами с:
    2 авг 2007
    Сообщения:
    37
    Симпатии:
    0
    Дак это цикл выйдет....а мне так нельзя...иначе у меня будет цикл в цикле ( в реальном скрипте так )
    Поэтому мне нужно взять последнюю запись....и просто узнать у неё Id =)
     
  6. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
  7. Mr.Gordon

    Mr.Gordon Активный пользователь

    С нами с:
    2 авг 2007
    Сообщения:
    37
    Симпатии:
    0
    А нееет =))))
    Это я пробовал =)) До такого я и сам додумался =))
    Но проблема в том, что там не постоянное кол-во пустых строк...тоесть иногда выводит 2, а иногда 1.....
    Хотя у меня немного скрипт нетакой был =) Щас твой попробую....
     
  8. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    если из такой записи
    получается запись с пустыми строками, то это из-за записи после
    З.Ы. кстати, а что это вы все такое мучаете?
     
  9. Mr.Gordon

    Mr.Gordon Активный пользователь

    С нами с:
    2 авг 2007
    Сообщения:
    37
    Симпатии:
    0
    нее....твой не работает =) точнее вобще не так работает =)
    Админку =))
    А почему именно из-за этой строчки???
     
  10. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    потому что она добавляет лишний один перенос строки и пустую строку.
    Я понял что не программу шифрования с закрытым ключём. Что за продукт?
    а как должен? Из файла без пустых строк вынимает самый последний элемент перед {?n?}
     
  11. Arik

    Arik Активный пользователь

    С нами с:
    14 сен 2007
    Сообщения:
    66
    Симпатии:
    0
    CMS...я уже всё написал....только вот с вычислением id и Аплодером проблемы....

    Так....а как же мне удалить из массива эти пустые строчки....
    я пробовал так:
    PHP:
    1. <?
    2.  $f = file("test.txt");
    3.  $fi=implode("\n",$f);
    4.  $file=explode("{?n?}",$fi);
    5.  if (!empty($file)) {
    6.  $c=count($file);
    7.  $c2=explode(";;",$file[$c]);
    8.  $count=$c2[3];
    9.  print "$count";
    10. }
    11.  ?>
    НЕ работает....
    Но походу тут цикл нужен....а мне нельзя =)) что делать?
     
  12. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    для начала осознать что строки переносятся не просто «\n», а «\rn»
    после этого, перестать склеивать массив в строку с \n $fi=implode('',$f);
    не плодить лищние строки $file=explode("{?n?}",$fi); (в конце последней есть {?n?} и поэтому он и её учитывает)
    Сделать это в БД

    З.Ы. Arik и Mr.Gordon это один человек, или два разных занимающихся одним и тем же?
     
  13. Arik

    Arik Активный пользователь

    С нами с:
    14 сен 2007
    Сообщения:
    66
    Симпатии:
    0
    ХАААААААААААААА!!!!!!!!! Gordon =)))))))))))))))))))))))))))))
    Саня ну ты дал =)))))))))))))))))))))) Яж сказал что сам разберусь! =)))
    Я бы сказал что я занимаюсь а он помогает =)
    Сёдня его запазорю =))) Gordon =))))))))))))