Разобрать и сформировать диалоги из TXT файла
Добрый день, помогите пожалуйста разобрать информацию из TXT, конвертировать ее в JSON, и вывести html. Текстовый файл содержит информацию о сообщениях между пользователями.
От кого: Пользователь Маша Зайцева (https://play.com/id1) 01.01.2022 в 02:25:28 да От кого: Пользователь Карина Васильева (https://play.com/id2) 01.01.2022 в 03:25:22 все От кого: Пользователь Ларис Викторовна ([url]https://play.com/id23/url]) 01.01.2022 в 03:28:22 Скинь сообщение Кому: Пользователь Ларис Викторовна (https://play.com/id3) 01.01.2022 в 04:25:11 вот держи Прикреплено сообщение #1 От кого: Пользователь Маша Зайцева (https://play.com/id4) 01.01.2022 в 02:25:28 да На выходе должно получиться Диалог с Пользоватем Маша Зайцева (https://play.com/id/...) (все сообщения с датой, прекреплениями ) Диалог с Пользоватем Карина Васильева (https://play.com/id/...) (все сообщения с датой, прекреплениями ) Диалог с Пользоватем Василиса Кондратьева (https://play.com/id/...) (все сообщения с датой, прекреплениями ) Диалог с Пользоватем Ларис Викторовна (https://play.com/id/...) (все сообщения с датой, прекреплениями ) |
Вы просите готовый скрипт с нуля.
Это работа, и за нее обычно платят деньги. Для таких сообщений предназначен раздел форума "Работа". Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела. |
const getText = `От кого:
Пользователь Маша Зайцева ([url]https://play.com/id1[/url])
01.01.2022 в 02:25:28
да
От кого:
Пользователь Карина Васильева ([url]https://play.com/id2[/url])
01.01.2022 в 03:25:22
все
От кого:
Пользователь Ларис Викторовна ([url]https://play.com/id2[/url])
01.01.2022 в 03:28:22
прикреплен файл #1 foto ([url]http://site.ru/a.png[/url])
Кому:
Пользователь Ларис Викторовна ([url]https://play.com/id2[/url])
01.01.2022 в 04:25:11
вот держи
Прикреплено сообщение #1
От кого:
Пользователь Маша Зайцева
([url]https://play.com/id4[/url])
01.01.2022 в 02:25:28
да
От кого:
Пользователь Ларирс Викторовноа ([url]https://play.com/id23/url])
01.01.2022 в 03:28:22
Скинь сообщени6е`
let getmsg = []
getText.split('\n\n').forEach((item, index) => {
const a = item.split('\n')
let getA = a.slice(0, 1) == 'прикреплен файл #1'
if (getA == false) {
getmsg.push({
"stor": a.slice(0, 1)[0],
"user": a.slice(0, 2)[1],
"date": a.slice(1, 3)[1],
"msg": a.slice(3)[0],
"attachment": getA
})
} else {
// console.log(index)
getmsg.push({
"stor": a.slice(0, 1)[0],
"user": a.slice(0, 2)[1],
"date": a.slice(1, 3)[1],
"msg": a.slice(3)[0],
"attachment": getA
})
}
})
//let user = getmsg.filter(item => item.user == 'Пользователь Ларис Викторовна (https://play.com/id2)');
console.log(getmsg)
Добрый вечер, сейчас скрипт отрабатывает вроде как нужно, единственная проблема с прикреплением файла, строка идёт через \n после даты.., в связи с чем создаётся новый объект
[
{
"stor": "От кого:",
"user": "Пользователь Маша Зайцева (https://play.com/id1)",
"date": "01.01.2022 в 02:25:28",
"msg": "да",
"attachment": false
},
{
"stor": "От кого:",
"user": "Пользователь Карина Васильева (https://play.com/id2)",
"date": "01.01.2022 в 03:25:22",
"msg": "все",
"attachment": false
},
{
"stor": "От кого:",
"user": "Пользователь Ларис Викторовна (https://play.com/id2)",
"date": "01.01.2022 в 03:28:22",
"attachment": false
},
{
"stor": "прикреплен файл #1 foto (http://site.ru/a.png)",
"attachment": false
},
{
"stor": "Кому:",
"user": "Пользователь Ларис Викторовна (https://play.com/id2)",
"date": "01.01.2022 в 04:25:11",
"msg": "вот держи",
"attachment": false
},
{
"stor": "От кого:",
"user": "Пользователь Ларирс Викторовноа ([url]https://play.com/id23/url])",
"date": "01.01.2022 в 03:28:22",
"msg": "Скинь сообщени6е",
"attachment": false
}
]
|
SpaceAlarm, у тебя явные проблемы при работе с массивами... :(
К чему такое применение slice? :blink: |
Для того, что бы вырезать конкретный текст со строк
|
Цитата:
Цитата:
const a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
const o = {
stor: a.slice(0, 1)[0],
user: a.slice(0, 2)[1],
date: a.slice(1, 3)[1],
msg: a.slice(3)[0],
}
alert(JSON.stringify(o))
Аналог твоего творения
const a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
const o = {
stor: a[0],
user: a[1],
date: a[2],
msg: a[3],
}
alert(JSON.stringify(o))
|
Я только учусь...)) прошу прощения.. а вот по поводу того что после даты нет msg и далее через \n идёт прикрепление, это косяк в split ?
В общем какая ситуация, данный код должен обрабатывать диалог с txt файла, кто мне написал и кому написал я, где идёт обычный диалог, работает вроде нормально, а вот где я или человек прикрепил какую то ссылку, файл, и т.д., там нет поля для сообщения, далее через отступ идёт прикрепление, после чего опять отступ и следующие сообщение |
Цитата:
|
Работает, но правильно ли сделал?
let indexT = getmsg.findIndex(x => x.stor === 'прикреплен файл #1 foto ([url]http://site.ru/a.png[/url])') getmsg[indexT -1].msg = getmsg[indexT].stor console.log(getmsg) |
Цитата:
Т.ч. про "правильность" не могу судить. :no: |
| Часовой пояс GMT +3, время: 22:39. |