Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.09.2024, 17:12
Кандидат Javascript-наук
Отправить личное сообщение для SpaceAlarm Посмотреть профиль Найти все сообщения от SpaceAlarm
 
Регистрация: 05.05.2016
Сообщений: 103

Разобрать и сформировать диалоги из 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/...) (все сообщения с датой, прекреплениями )

Последний раз редактировалось SpaceAlarm, 01.09.2024 в 17:15.
Ответить с цитированием
  #2 (permalink)  
Старый 01.09.2024, 23:04
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,790

Вы просите готовый скрипт с нуля.

Это работа, и за нее обычно платят деньги.
Для таких сообщений предназначен раздел форума "Работа".

Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела.
Ответить с цитированием
  #3 (permalink)  
Старый 05.09.2024, 22:44
Кандидат Javascript-наук
Отправить личное сообщение для SpaceAlarm Посмотреть профиль Найти все сообщения от SpaceAlarm
 
Регистрация: 05.05.2016
Сообщений: 103

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, 05.09.2024 в 22:49.
Ответить с цитированием
  #4 (permalink)  
Старый 06.09.2024, 09:57
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,202

SpaceAlarm, у тебя явные проблемы при работе с массивами...
К чему такое применение slice?
Ответить с цитированием
  #5 (permalink)  
Старый 06.09.2024, 10:16
Кандидат Javascript-наук
Отправить личное сообщение для SpaceAlarm Посмотреть профиль Найти все сообщения от SpaceAlarm
 
Регистрация: 05.05.2016
Сообщений: 103

Для того, что бы вырезать конкретный текст со строк
Ответить с цитированием
  #6 (permalink)  
Старый 06.09.2024, 12:15
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,202

Сообщение от SpaceAlarm
Для того, что бы вырезать конкретный текст со строк
Ты делаешь это через ж***...
Сообщение от SpaceAlarm
"stor": a.slice(0, 1)[0],
"user": a.slice(0, 2)[1],
"date": a.slice(1, 3)[1],
"msg": a.slice(3)[0],
Возьмем например этот кусок...

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))
Ответить с цитированием
  #7 (permalink)  
Старый 06.09.2024, 12:46
Кандидат Javascript-наук
Отправить личное сообщение для SpaceAlarm Посмотреть профиль Найти все сообщения от SpaceAlarm
 
Регистрация: 05.05.2016
Сообщений: 103

Я только учусь...)) прошу прощения.. а вот по поводу того что после даты нет msg и далее через \n идёт прикрепление, это косяк в split ?

В общем какая ситуация, данный код должен обрабатывать диалог с txt файла, кто мне написал и кому написал я, где идёт обычный диалог, работает вроде нормально, а вот где я или человек прикрепил какую то ссылку, файл, и т.д., там нет поля для сообщения, далее через отступ идёт прикрепление, после чего опять отступ и следующие сообщение
Ответить с цитированием
  #8 (permalink)  
Старый 06.09.2024, 14:06
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,202

Сообщение от SpaceAlarm
а вот по поводу того что ...
Какой учебник по JS ты уже прочитал?
Ответить с цитированием
  #9 (permalink)  
Старый 08.09.2024, 09:35
Кандидат Javascript-наук
Отправить личное сообщение для SpaceAlarm Посмотреть профиль Найти все сообщения от SpaceAlarm
 
Регистрация: 05.05.2016
Сообщений: 103

Работает, но правильно ли сделал?
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)
Ответить с цитированием
  #10 (permalink)  
Старый 08.09.2024, 11:22
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,202

Сообщение от SpaceAlarm
но правильно ли сделал?
Я пока не понимаю что ты там вообще собрался делать...
Т.ч. про "правильность" не могу судить.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из txt выбрать нужные строки и сформировать csv SergeyPetrovA Общие вопросы Javascript 16 12.12.2016 14:22
Считывание из txt файла Esca Оффтопик 8 24.06.2015 18:58
на php как быстро записать массив из большого файла txt? wadim Общие вопросы Javascript 4 18.03.2014 19:09
считывание с txt файла maikusha Общие вопросы Javascript 2 02.03.2012 08:41
Чтение и запись с txt или csv файла vitaver AJAX и COMET 0 23.12.2010 20:43