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



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



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

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



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



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

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



  • К примеру, есть такой 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
    


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



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

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

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

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



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

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

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


Log in to reply
 

Looks like your connection to Bablosoft was lost, please wait while we try to reconnect.