Вопрос про списки


  • administrators

    Точнее вопрос скорее про "удалить дубликаты". У меня скрипт парсит страницу, регуляркой выбирает нужные данные, replase'ом привожу в нужный вид.. И получается список, который хранится в переменной. На неё нельзя использовать "удалить дубликаты", но можно создать список и поместить данные из переменной в этот список. Но удалить "удалить дубликаты" тоже не будет работать, потому что данные добавятся массивом.. Собственно вопрос, как добавлять данные в список, чтобы можно было удалять дубликаты?



  • массив и список это одно и то же. Просто Список это человеко-название, а массив это название в программировании (грубо и коротко).

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


  • administrators

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



  • @Fox да, массив это список. От отличается не переводом строки. Строка это строка, а массив это массив и все. В массиве есть элементы, с которыми можно производить операции, например удаление дубликатов.

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


  • administrators

    К примеру, есть такой html код

    "],"ty":3,"f":"0.06841446"},{"id":"8750365759","l":"D578940049224648703","e":"FT","b":"76561198302006866","u":"XH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot7HxfDhjxszOeC9H_9mkhIWFg8j1OO-GqWlD6dN-teTE8YXghRrkqRVqMGzzIYeTIAVqaQuErl80JfuusvJmHFr6SRxsXzfm0fkn1c02RC4r","name":"один","c":1,"t":"gw","p":й,"s":[],"ty":3,"s":"0.34511"},{"i:"87550118","l":"D2504015045696661","q":"768302006866","u":"XH5ApeOQknCRvCo04DEVlxkKgpot7HxfDhjxszOeC9H_9mkhIWFg8j1OO-GqWlD6dN-teTE8YXghRrkqRVqMGzzIYeTIAVqaQuErlbvlb-80JfmHFr6SRxsXzfm0fkn12RC4r","name":"два","c":1,"n":ieuner.","t":"gw","p":2,"s":[],"ty":3,"f":"65545"},{"id":"8764113","l":"D5624615697871648514",:"765618302006866","u":"XH5ApeO4hxYQknCRvCo04DEVlxkKgpovbSsLQJf3qr3czxb49KzgL-Kmsj5MqnTmm5u7sR1jv9nBrj-EE-YTrzcYXGcA85aF7YqQLtwb3o0MXNynoy6Ckr4CnUmBe3n1gSOfoXR","name":"три","c":1,"t":"k","p":3,"s":[],"ty":2,"f":"046501"},{":64455683","l":"D17194752908123904155","e,"b":"76561198302006866","u":"XH5ApeO4YmlhxYQknCRvVlxkKgpovbSsLQJf2PLacDBA5ciJlY20mvbmMbfUqW1Q7MBOhuDG_Zi7jQGw-xVoZGigd4LEI1I2NQyE_ATqlOrtjMfq6ZWanXA3siBx5CyLnQv3309Lv_QKkg","name":"один","t":"k","p":1,"s":[],"ty":2,"0.034046"},{"id":"8760412","l":"D13979741569521668123",":"765611302006866","":"XH5ApeO4knCRvCo04DEVlxkKgpovbSsLQJf2PLacDBA5ciJl7fp8j-3I4IG72ADgrUJoazqhIYOccwZsaAvSrlHtlO6-jZZk7yggtnnanwv3308QSsudOA","name":"четыре","t":"k","p":4,"s":[],"ty":2,"243499"},{"id":"872703","l":"D11881849080631885164","b":"76561198302006866","u":"XH5ApeO4YmlhxYQklxkKgpovbSs9KzgL-Igsj5aoTTl3Ju5Mpjj9bM8Ij8nVn6qkRuYGH7I4STdldqZFCG-QS-xOy7gpW7vJ2bnSdn6XIg4X2OzkHlgAYMMLIs05iQHg","name":"пять","t":"k","p":5,"s":[],"t,"36192560"},{"id":"8743045","D29476108975161298","e":","b":"7656119836866",""XH5ApeO4Co04DEVlxkKgpovbSsLQJfwObaZzRU7dCJlo-cnvLLMrrukGpV7fp9g-7J4cLzjAzhrkA4aj-hcI6Sd1VvY13V-wO9xuvn05O_u5mcynE3uyYlsy2LgVXp1uhoh_bX","name":"два","c":1,"t":"k","p":2,"s":[],"ty":2,"5198444"},{"id":"8761735363","l":"D984601340276",":"76561102006866","u":"XH5ApeO4YmlhxYQknCVlxkKgpovbSsLQJf1ObcTjxP08-3hJCDnuXxDLbQhGld7cxBVlZDv3IYLGJAE2aQvX_wW5xLzrhsDqvp7Pynpkv3Ui7XnUzhHmhAYMMLIU9_4nhg","name":"шесть",":","t":","p":6,"s":[],"ty":2,"350471,{"id":"87633
    

    Далее "Извлечь все данные" с регуляркой

    "name":".*?",.*?"p":.*?,
    

    Потом, "Объединить в строку", "Выполнить код"

    VAR_TEST_2 = (VAR_TEST_1).replace(/"name":"(.*?)",.*?"p":(.*?),/g, 'REPLACE INTO table VALUES \(\'$1\', \'$2\', NOW());\n');
    

    Ну и сохранить в файл, для добавления в mysql базу запросом "Запустить процесс"

    mysql.exe -uroot -p1 -Dproject<test.txt
    

  • administrators

    В конце .replace я добавил перенос строки \n получился список, но применить на него удаление дубликатов не получается.



  • @Fox если добавить \n то это вовсе не значит, что будет список. Это просто строка с переносами строк. Но это тип данных: СТРОКА. Не массив.

    после Извлечь все данные ты получаешь массив. А потом сам же и преобразовываешь массив в строку через Объединить в строку, то зачем удивляться, что дубли не удаляются.

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

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


  • administrators

    @out said in Вопрос про списки:

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

    О! А это мысль! А то я уже опять начал костыли приделывать, вместе \n ставить какой нибудь знак, его потом использовать, чтобы разделить строку...