Как распарсить TXT-Файл?
Всем привет!
Это мой первый вопрос, сильно не бить :) Имеется текстовый файл с подобными текстом: Через 20 лет вы будете больше разочарованы теми вещами, которые вы не делали, чем теми, которые вы сделали. Так отчальте от тихой пристани. Почувствуйте попутный ветер в вашем парусе. Двигайтесь вперед, действуйте, открывайте! Когда мне было 5 лет, мама всегда говорила, что главное в жизни – счастье. Когда я пошел в школу, на вопрос, кем я хочу быть, когда вырасту, я ответил “счастливым человеком”. Мне тогда сказали, что я не понимаю вопроса, а я ответил, что это они не понимают жизни. -зравствуйте -зравствуй Оля проходи садись на диван -хорошо Наталья Ивановна -будишь чай и пирог -да конечно Наталья Ивановна Файл загружаю так: function ReadTextFile(file, callback) { var rawFile = new XMLHttpRequest(); rawFile.overrideMimeType("application/json"); rawFile.open("GET", file, true); rawFile.onreadystatechange = function() { if (rawFile.readyState === 4 && rawFile.status == "200") { callback(rawFile.responseText); } } rawFile.send(null); } var List = []; ReadTextFile("test.txt", function(data) { var S = String(data); console.log(S); for (let i = 0; i < S.length; i++) { // ??? }; }); Как сделать чтобы в массиве List были куски текста из test.txt разделённые пустой строкой? Типа List[0] содержит первый текст начинающийся со слов "Через 20 лет", в List[1] содержит второй текст начинающийся со слов "Когда мне было 5 лет" и т.д. |
Заметка: responseText в любом случае String, нет смысла data дополнительно кастовать в String.
Если ты уверен что переносы строк всегда linux - \n или windows - \r\n и нет лишних пустых пробелов, то просо так: var List = S.split('\n\n'); или var List = S.split('\r\n\r\n'); соответственно.Однако для надёжности лучше так: var List = S.trim().split(/\s*\n\s*\n\s*/);что учтёт оба варианта переноса, наличие более чем одного переноса и пробелов перед ними. |
Большое спасибо! :thanks:
|
Часовой пояс GMT +3, время: 14:27. |