Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Задачка Яваскрипт, из столбика делаем столбики

1735  1 2 3 4 5 все
7495 свой человек29.10.22 19:01
7495
NEW 29.10.22 19:01 

Объясняю задачку, имеет длинный stolbik.txt, надо зачитать, подробить и на экран вывести.

выводим их по 7 штук, чтоб над каждой группой был свой порядковый номер, и у строчек тоже.


Было (stolbik.txt):

1.41421
1.73205
2.23606
2.44948
2.64575
2.82842
3.16227
4.47213
5.47722
6.32455
7.70710
7.74596
8.36660
8.94427
9.48683


Стало на экране (mypanel):

Group 1

01 1.41421

02 1.73205

03 2.23606

04 2.44948

05 2.64575

06 2.82842

07 3.16227

Group 2

01 4.47213

02 5.47722

03 6.32455

04 7.70710

05 7.74596

06 8.36660

07 8.94427

Group 3

01 9.48683

...

...


Я хотел текстовой список как "скрипт" переименовать и как вариаблу читать, как в прошлом примере, оказывается вариаблы только в сточке бывают.

Вопросы и Ответы - Программируем калькулятор пособий для беженцев вместе.
#1 
7495 свой человек29.10.22 20:42
7495
29.10.22 20:42 
в ответ 7495 29.10.22 19:01

Вот тут пишут, показывают много примеров как зачитывают текст в броузер с яваскриптом:


https://stackoverflow.com/questions/14446447/how-to-read-a...


но мне то надо не просто показать, а ещё поделить на кучки по 7 штучек, там не пишут как!

Вопросы и Ответы - Программируем калькулятор пособий для беженцев вместе.
#2 
alex445 коренной житель29.10.22 21:10
NEW 29.10.22 21:10 
в ответ 7495 29.10.22 20:42, Последний раз изменено 29.10.22 21:15 (alex445)

Сначала предложили подработать на блокчейне, а потом заставили постоянно заниматься джаваскриптизом.


Купите уже себе книжку "Джаваскрипт за 21 час". Если с блокчейном потом вдруг не выгорит - сможете скриптизёром устроиться. ))

#3 
BSDLamer Хвостатый Carpal Tunnel29.10.22 22:36
BSDLamer
NEW 29.10.22 22:36 
в ответ 7495 29.10.22 20:42

да, девелоперы нынче не те.


for loop если нельзя сторонние либы

lodash _.chunk если можно


это я как не девелопер просто экспромтом

0001, 0010, 0011, 0100, 0101, вышел зайчег погулядь
#4 
Срыв покровов патриот30.10.22 07:19
NEW 30.10.22 07:19 
в ответ 7495 29.10.22 20:42

парсить текстовый файл, да ещё и в JS - дело неблагодарное.

Столбик нельзя как json заиметь?

#5 
BSDLamer Хвостатый Carpal Tunnel30.10.22 12:26
BSDLamer
NEW 30.10.22 12:26 
в ответ 7495 29.10.22 19:01

я бы еще задумался над целесообразностью всей задачи, парсить текст в браузере ...

0001, 0010, 0011, 0100, 0101, вышел зайчег погулядь
#6 
AlexNek патриот30.10.22 13:29
AlexNek
NEW 30.10.22 13:29 
в ответ BSDLamer 30.10.22 12:26

Скорее всего, данные будут браться со стороннего сервера.

#7 
7495 свой человек30.10.22 13:55
7495
NEW 30.10.22 13:55 
в ответ AlexNek 30.10.22 13:29

Никаких сторонних серверов, файл лежит у меня на рабочем столе 10тысяч строк, а как обозвать .txt или .js без разницы.

Я запарюсь отщипывать по 7 штук вручную. Надо чтоб появилась структура, чтоб файл отобразился в группах в HTML или TXT.


А о целесообразности, мне что теперь ВижуалСтудио устанавливать? У меня все такие задачки, тексты туда-сюда сортировать,

Задачка идеально решалась бы в Batch, но как я уже говорил, я не программист, просто нужно немного текста преобразовать.


Вопросы и Ответы - Программируем калькулятор пособий для беженцев вместе.
#8 
Бесконечный цикл завсегдатай30.10.22 14:22
NEW 30.10.22 14:22 
в ответ 7495 30.10.22 13:55

Я так понял, что между левой и правой половинками надо что-то вставить типа функции или класса, чтобы покоцать левую половинку на мелкие части и сохранить во второй половинке. Думаю цикл мог бы решить задачу. С периодом 7.

#9 
Срыв покровов патриот30.10.22 14:42
NEW 30.10.22 14:42 
в ответ 7495 30.10.22 13:55
Никаких сторонних серверов, файл лежит у меня на рабочем столе 10тысяч строк, а как обозвать .txt или .js без разницы.

да ты же гений! Где ты раньше был, когда я сканы преобразовывал в текст FineReader‘ом. Надо было просто расширения файла поменять 🤣

#10 
7495 свой человек30.10.22 15:35
7495
NEW 30.10.22 15:35 
в ответ Бесконечный цикл 30.10.22 14:22
Бесконечный цикл : Думаю цикл мог бы решить задачу.


Ну так в чём же дело? Если можешь - помоги решить задачку.

Вопросы и Ответы - Программируем калькулятор пособий для беженцев вместе.
#11 
AlexNek патриот30.10.22 15:49
AlexNek
NEW 30.10.22 15:49 
в ответ 7495 30.10.22 13:55
мне что теперь ВижуалСтудио устанавливать?

Она должна стоять по умолчанию спок

На шарпе за 5 минут делается, для начинающего может за час.

#12 
alex445 коренной житель30.10.22 20:21
NEW 30.10.22 20:21 
в ответ 7495 30.10.22 13:55, Последний раз изменено 30.10.22 20:32 (alex445)

Слишком сложная задача для обычных find-replace. Действительно, лучше сделать на языке программирования, желательно с механизмом, похожим на LINQ в C#. Ну или циклы вручную (по индексам) гонять.


Выучите один раз какой-нибудь язык (шарп, джаваскрипт или ещё что-то) ну уровне процедурного программирования - как раз циклы и объявления переменных. Ну и как открыть, прочитать и сохранить в файл по строкам. Например.


Беспомощный блокчейнер! Тебя от миллионов отделяет лишь полтора часа обучения Шарпу и полчаса постановки Студии. А ну взял свою задницу в руки в темпе и погнал ставить и изучать! Рохля, размазня! Ты же будущий мультимиллионер! У Мура спроси, какой там ценз. Учись вести себя подобающе! Случайного залётного разбогатея настоящие миллионеры быстро раскусят, разденут и пустят голым в Африку.


Не, реально, когда заманивали на блокчейн, не говорили, что надо файлы пачками преобразовывать. Говорили, что деньги башляешь и тебе обратно в разы больше дают.

ПС. Пипец, там 43 ролика. Я только первые 7-8 видел.

#13 
Бесконечный цикл завсегдатай30.10.22 21:53
NEW 30.10.22 21:53 
в ответ 7495 30.10.22 15:35

Я ЖС забыл уже давно (как страшный сон), но вот пару народно крестьянских методов (через цикл):


function chunkArrayInGroups(arr, size) {
  var myArray = [];
  for(var i = 0; i < arr.length; i += size) {
    myArray.push(arr.slice(i, i+size));
  }
  return myArray;
}
console.log(chunkArrayInGroups(["a", "b", "c", "d"], 2));


var a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'];

var arrays = [], size = 3;
    
while (a.length > 0)
  arrays.push(a.splice(0, size));

console.log(arrays);


Ну или для эстетов:


const chunks = (a, size) =>
    Array.from(
        new Array(Math.ceil(a.length / size)),
        (_, i) => a.slice(i * size, i * size + size)
    );

let a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'];

console.log(chunks(a, 3));
console.log(chunks(a, 2));


Взято из поиска по "javascript split array into chunks"


Надо теперь как-то прочитать и записать в файл.

#14 
BSDLamer Хвостатый Carpal Tunnel30.10.22 22:14
BSDLamer
NEW 30.10.22 22:14 
в ответ 7495 30.10.22 15:35

если у тебе локально надо текст обрабатывать, поставь как он там называется WSL и просто пользуйся тулами которые именно для этого сущесвуют лет 40 уже. Зачем гланды через зад

0001, 0010, 0011, 0100, 0101, вышел зайчег погулядь
#15 
BSDLamer Хвостатый Carpal Tunnel30.10.22 23:11
BSDLamer
NEW 30.10.22 23:11 
в ответ 7495 30.10.22 15:35

на коленке


файл с одной колонкой

$ for i in {1..30}; do echo $RANDOM >> testfile.txt; done


как бы скрипт

#!/bin/bash


group=1

member=1


cat $1 | while read line; do

if [[ "$member" -eq 1 ]]; then

echo "=== group: $group ==="

echo "$member: $line"

((member++))

elif [[ "$member" -lt 7 ]]; then

echo "$member: $line"

((member++))

else

echo "$member: $line"

echo ""

member=1

((group++))

fi

done


как бы запускаем


$ ./script.sh testfile.txt

=== group: 1 ===

1: 15414

2: 23089

3: 5837

4: 5311

5: 14649

6: 11802

7: 31615


=== group: 2 ===

1: 13278

2: 26622

3: 31584

4: 4272

5: 6595

6: 6845

7: 3503


=== group: 3 ===

1: 5746

2: 21224

3: 9076

4: 7856

5: 16592

6: 18625

7: 28218


=== group: 4 ===

1: 5944

2: 24458

3: 29901

4: 25955

5: 14129

6: 17805

7: 14430


=== group: 5 ===

1: 31577

2: 20553


0001, 0010, 0011, 0100, 0101, вышел зайчег погулядь
#16 
Срыв покровов патриот30.10.22 23:15
NEW 30.10.22 23:15 
в ответ BSDLamer 30.10.22 23:11

условия задачи читал?

#17 
BSDLamer Хвостатый Carpal Tunnel30.10.22 23:17
BSDLamer
NEW 30.10.22 23:17 
в ответ Срыв покровов 30.10.22 23:15

Объясняю задачку, имеет длинный stolbik.txt, надо зачитать, подробить и на экран вывести.

выводим их по 7 штук, чтоб над каждой группой был свой порядковый номер, и у строчек тоже.

0001, 0010, 0011, 0100, 0101, вышел зайчег погулядь
#18 
BSDLamer Хвостатый Carpal Tunnel30.10.22 23:27
BSDLamer
NEW 30.10.22 23:27 
в ответ 7495 29.10.22 19:01, Последний раз изменено 30.10.22 23:54 (BSDLamer)

в powershell тоже можно или python

0001, 0010, 0011, 0100, 0101, вышел зайчег погулядь
#19 
Срыв покровов патриот31.10.22 08:18
NEW 31.10.22 08:18 
в ответ BSDLamer 30.10.22 23:17, Последний раз изменено 31.10.22 09:27 (Срыв покровов)
Задачка Яваскрипт,

#20 
1 2 3 4 5 все