Вверх ↑
Этот топик читают: Гость
Ответов: 62
Рейтинг: -1
#1: 2021-09-15 10:13:21 ЛС | профиль | цитата
привет всем, как сделать реверс строк в файлах? есть вообще компонент str reverse в hiasm? если нету буду благодарен за код

еще нужно перебрать все файлы в папке и зареверсить первые 12 строк в них

Редактировалось 1 раз(а), последний 2021-09-15 10:39:56
карма: 0

0
Ответов: 4630
Рейтинг: 749
#2: 2021-09-15 10:49:27 ЛС | профиль | цитата
StrReverse
карма: 26

1
Голосовали:rektware
Ответов: 62
Рейтинг: -1
#3: 2021-09-15 11:26:49 ЛС | профиль | цитата
Netspirit, о, спасибо, не видел компонент, а со строками в файлах поможете?
карма: 0

0
Ответов: 4630
Рейтинг: 749
#4: 2021-09-15 14:29:55 ЛС | профиль | цитата
Предполагается что файл - текстовый.
1) Перебор файлов папке - с помощью компонента FileSearch
2) Берешь один StrList, загружаешь в него файл методом doLoad
3) Перебираешь строки первого StrList с помощью компонента ArrayEnum, обрабатываешь их и добавляешь во второй StrList
4) По окончанию второй StrList сохраняешь в файл методом doSave.

Редактировалось 3 раз(а), последний 2021-09-15 14:32:28
карма: 26

0
Ответов: 62
Рейтинг: -1
#5: 2021-09-15 14:32:03 ЛС | профиль | цитата
Netspirit, а варианта побыстрее нету? каждый файл обрабатывать такими манипуляциями очень долго мне кажется
карма: 0

0
Ответов: 4630
Рейтинг: 749
#6: 2021-09-15 14:33:42 ЛС | профиль | цитата
Не думаю что долго. Весь файл загружается в память, в памяти обрабатывается, и потом целиком сохраняется. На фоне быстродействия HDD - незаметно.

Например, быстродействие алгоритма Base64 на старом ПК достигало выше 200 Мб/сек, компоненты шифрования - 40-80 Мб/сек.

Редактировалось 2 раз(а), последний 2021-09-15 14:37:11
карма: 26

0
Ответов: 62
Рейтинг: -1
#7: 2021-09-15 14:37:03 ЛС | профиль | цитата
Netspirit, имеется в виду, что мне надо это автоматизировать

это надо еще учитывать, что strlist надо будет очищать от предыдущего содержимого файла.. мне кажется фигня какая-то

набросок сие чуда можно посмотреть?

--- Добавлено в 2021-09-15 14:38:05

Netspirit, и применять str reverse надо только на 12 строк, а не на весь файл

Редактировалось 1 раз(а), последний 2021-09-15 14:38:05
карма: 0

0
Ответов: 4630
Рейтинг: 749
#8: 2021-09-15 14:39:08 ЛС | профиль | цитата
rektware писал(а):
что strlist надо будет очищать от предыдущего содержимого файла
Второго - да. Для этого там есть метод doClear.
rektware писал(а):
набросок
Ну, так это надо просто по пунктам выполнить то, что я написал.
карма: 26

0
Ответов: 62
Рейтинг: -1
#9: 2021-09-15 14:46:09 ЛС | профиль | цитата
Netspirit, то есть 1. я компонентом filesearch ищу файлы в папке, 2. после нахождения открываю его для чтения\записи компонентом filestream и вывожу содержимое в strlist? мм, а как второй strlist узнает какое содержимое в каком файле сохранять?

Редактировалось 1 раз(а), последний 2021-09-15 14:47:10
карма: 0

0
Ответов: 4630
Рейтинг: 749
#10: 2021-09-15 14:58:28 ЛС | профиль | цитата
rektware писал(а):
открываю его для чтения\записи компонентом filestream и вывожу содержимое в strlist?
Нет. Просто загружаешь его методом StrList.doLoad.
rektware писал(а):
а как второй strlist узнает какое содержимое в каком файле сохранять?
На выходе из FileSearch ты получаешь полный путь к файлу - сохраняешь его в Memory, а с него подаешь на точку StrList.Filename обеих StrList.
rektware писал(а):
применять str reverse надо только на 12 строк, а не на весь файл
Перед обработкой каждой строки поставить CounterEx и проверять его значение с помощью If_Else. Точка ArrayEnum.Index содержит номер обрабатываемой строки (начиная с 0) - проверять её значение с помощью If_Else. Если меньше 12 - обрабатывать текущую строку, иначе - пропускать без обработки.

Редактировалось 6 раз(а), последний 2021-09-15 15:07:21
карма: 26

0
Ответов: 62
Рейтинг: -1
#11: 2021-09-15 15:10:29 ЛС | профиль | цитата
Netspirit, мда, если б я еще умел строить схему по тексту, вроде ни че сложного, но я запутался

--- Добавлено в 2021-09-15 15:16:08

Netspirit, у меня от моих манипуляций программа наверно думает ну его нах*р и тупо вылетает при нажатии на кнопку..

Редактировалось 2 раз(а), последний 2021-09-15 15:17:04
карма: 0

0
Ответов: 4630
Рейтинг: 749
#12: 2021-09-15 15:36:21 ЛС | профиль | цитата
Попробуй выполнять пошагово. На каждом шаге проверяй результат на соответствие ожидаемому. Спроси что не понятно.

Редактировалось 1 раз(а), последний 2021-09-15 15:36:47
карма: 26

0
Ответов: 62
Рейтинг: -1
#13: 2021-09-15 15:42:44 ЛС | профиль | цитата
Netspirit, во второй strlist через doadd добавлять обработанные строки или как?
карма: 0

0
Ответов: 4630
Рейтинг: 749
#14: 2021-09-15 15:53:39 ЛС | профиль | цитата
И обработанные и необработанные. Для этого перед ставится If_else, который проверяет значение точки ArrayEnum.Index с условием Op1 < 12. По событию onTrue строка обрабатывается и добавляется в список, по onFalse - не обрабатывается и добавляется как есть.
карма: 26

0
Ответов: 62
Рейтинг: -1
#15: 2021-09-15 16:09:10 ЛС | профиль | цитата
Netspirit, хз короче, не понимаю, рано или поздно я конечно дойду до правильного варианта, но не знаю когда это будет
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)