Что нового

Копировать из одного документа значение и вставить в другой

Ket_rina

Новичок
Сообщения
5
Репутация
0
Здравствуйте. Мне нужно из одного документа перенести в другой все значения после "id". Чтобы во втором документе были просто строки из цифр. А потом то же самое нужно со значением "title".
Пример:
{
"id": 1115,
"title": "Абинск",
"area": "Абинский район",
"region": "Краснодарский край"
}, {
"id": 5399,
"title": "Абдулино",
"area": "Абдулинский район",
"region": "Оренбургская область"
}
В первом случае у меня должно получиться (можно с запятой):
1115
5399
Во втором (можно с кавычками и запятой):
Абинск
Абдулино
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Код:
#include <File.au3>

$Text = FileRead("data.txt")
$id = StringRegExp($Text, '"id": (\d+)', 3)
_FileWriteFromArray("id.txt", $id)
$title = StringRegExp($Text, '"title": "(.*)"', 3)
_FileWriteFromArray("title.txt", $title)
 
Автор
K

Ket_rina

Новичок
Сообщения
5
Репутация
0
Код:
#include <File.au3>

$Text = FileRead("data.txt")
$id = StringRegExp($Text, '"id": (\d+)', 3)
_FileWriteFromArray("id.txt", $id)
$title = StringRegExp($Text, '"title": "(.*)"', 3)
_FileWriteFromArray("title.txt", $title)
Через что открыть и активировать этот код? Извините, я далека от программирования( Спасибо за помощь!
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Установить AutoIt.
Создать файл с расширением au3, открыть любым текстовым редактором, записать этот код, сохранить.
В этой же папке создать файл data.txt с нужным вам текстом.
Двойным кликом по файлу au3 запустить скрипт (или кликнуть правой клавишей по файлу и выбрать "Run Script").
В этой же папке появятся два файла с результатами.
 
Автор
K

Ket_rina

Новичок
Сообщения
5
Репутация
0
Установить AutoIt.
Создать файл с расширением au3, открыть любым текстовым редактором, записать этот код, сохранить.
В этой же папке создать файл data.txt с нужным вам текстом.
Двойным кликом по файлу au3 запустить скрипт (или кликнуть правой клавишей по файлу и выбрать "Run Script").
В этой же папке появятся два файла с результатами.
Спасибо большое! Всё получилось.
Сообщение автоматически объединено:

Установить AutoIt.
Создать файл с расширением au3, открыть любым текстовым редактором, записать этот код, сохранить.
В этой же папке создать файл data.txt с нужным вам текстом.
Двойным кликом по файлу au3 запустить скрипт (или кликнуть правой клавишей по файлу и выбрать "Run Script").
В этой же папке появятся два файла с результатами.
А можно ещё как-нибудь проверить в пределах одного исходного документа совпадения по "id"?
 
Последнее редактирование:

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Если считать количество совпадений можно так (будет показывать окно с колличеством совпадений, если они есть) :
Код:
#include <File.au3>
#include <Array.au3>

$Text = FileRead("data.txt")
$id = StringRegExp($Text, '"id": (\d+)', 3)
_FileWriteFromArray("id.txt", $id)
$title = StringRegExp($Text, '"title": "(.*)"', 3)
_FileWriteFromArray("title.txt", $title)

$aUnique = _ArrayUnique($id)
If UBound($id)=UBound($aUnique) Then
    MsgBox(0,'','Совпадений id нет')
Else
    For $i=0 to UBound $aUnique)-1
        $n=0
        For $j=0 To UBound($id)-1
            If $aUnique[$i]=$id[$j] Then $n+=1          
        Next
        If $n>0 Then MsgBox(0,'','Найдено '&$n&' совпадений id '&$aUnique[$j])
    Next
EndIf

Нужно ли сохранять результат совпадений в отдельный файл ?
Интересует сам факт совпадения или и количество совпаденийтоже ?
 
Автор
K

Ket_rina

Новичок
Сообщения
5
Репутация
0
Если считать количество совпадений можно так (будет показывать окно с колличеством совпадений, если они есть) :
Код:
#include <File.au3>
#include <Array.au3>

$Text = FileRead("data.txt")
$id = StringRegExp($Text, '"id": (\d+)', 3)
_FileWriteFromArray("id.txt", $id)
$title = StringRegExp($Text, '"title": "(.*)"', 3)
_FileWriteFromArray("title.txt", $title)

$aUnique = _ArrayUnique($id)
If UBound($id)=UBound($aUnique) Then
    MsgBox(0,'','Совпадений id нет')
Else
    For $i=0 to UBound $aUnique)-1
        $n=0
        For $j=0 To UBound($id)-1
            If $aUnique[$i]=$id[$j] Then $n+=1         
        Next
        If $n>0 Then MsgBox(0,'','Найдено '&$n&' совпадений id '&$aUnique[$j])
    Next
EndIf

Нужно ли сохранять результат совпадений в отдельный файл ?
Интересует сам факт совпадения или и количество совпаденийтоже ?
Сохранять не нужно. Спасибо! А возможно, если у меня два и больше документов, найти в них совпадения и сохранить их в отдельном документе с указанием в каком найдены? В самих документах ссылки с новых строк. Мне нужно, чтобы они не повторялись в разных.
Сообщение автоматически объединено:

Я не знаю как будет проще. В итоге у меня должно получится несколько списков с разными ссылками.
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Я понимаю так : Есть несколько документов с ссылками , нужно для начала убрать совпадения в первом, затем если есть совпадения из первого в остальных - убрать их, дальше всё то же самое , только со вторым документом итд. в итоге получится несколько документов с неповторяющимися ссылками, так ?
 
Автор
K

Ket_rina

Новичок
Сообщения
5
Репутация
0
Я понимаю так : Есть несколько документов с ссылками , нужно для начала убрать совпадения в первом, затем если есть совпадения из первого в остальных - убрать их, дальше всё то же самое , только со вторым документом итд. в итоге получится несколько документов с неповторяющимися ссылками, так ?
Да. Но в самом первом документе проверять не надо. Совпадений в нём нет.
 
Верх