Тема: АНК: Добавить текст в файл
Имеется файл типа .txt:
Тихий ветер. Вечер сине-хмурый.
Я смотрю широкими глазами.
Как у нас в соломенной Рязани.
Можно ли средствами AHK в третью строку вставить строчку- В Персии такие ж точно куры,
Спасибо!
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Имеется файл типа .txt:
Тихий ветер. Вечер сине-хмурый.
Я смотрю широкими глазами.
Как у нас в соломенной Рязани.
Можно ли средствами AHK в третью строку вставить строчку- В Персии такие ж точно куры,
Спасибо!
File = D:\Temp\Stih.txt
Str = В Персии такие ж точно куры,
Loop, Read, %File%
{
If A_Index = 3
Text .= Str . "`n"
Text .= A_LoopReadLine . "`n"
}
FileDelete, %File%
FileAppend, %Text%, %File%
MsgBox, Готово.
Ещё раз спасибо "YMP" всё работает , но бывает такая ситуация, когда строка повторяется несколько раз(Я смотрю широкими глазами.), и надо выбрать последнюю строку(Я смотрю широкими глазами.) и после неё добавить строчку - В Персии такие ж точно куры, т.е 6 стр
Тихий ветер. Вечер сине-хмурый.
Я смотрю широкими глазами.
Я смотрю широкими глазами.
Я смотрю широкими глазами.
Я смотрю широкими глазами.
Как у нас в соломенной Рязани.
Странная какая-то ситуация. Какой во всём этом смысл? И какие ещё бывают ситуации? Просто неохота зря код писать.
Это последняя ситуация какая может быть
Что значит "выбрать последнюю строку"? Предыдущие убрать или оставить?
Нет, предыдущую надо оставить как и все одинаковые и после неё дописать.
File = D:\Temp\Stih.txt
Str1 = Я смотрю широкими глазами.
Str2 = В Персии такие ж точно куры,
Loop, Read, %File%
{
If (PrevLine = Str1) and (A_LoopReadLine != Str1)
Text .= Str2 . "`n"
Text .= A_LoopReadLine . "`n"
PrevLine := A_LoopReadLine
}
FileDelete, %File%
FileAppend, %Text%, %File%
MsgBox, Готово.
Всплыл ещё один подводный камень.
Теперь необходимо получившийся файл .txt , Каждую строку отсортировать по алфавиту (строк может быть больше 100) длиною максимум 50 знаков
Догадываюсь ,что надо загнать его в переменную (FileRead)и через RegExReplace с ним что-то проделать.
Но не могу этого сделать.
ПОМОГИТЕ !!!
Text =
(
Первая строка
Вторая строка
Третья строка
Четвёртая строка
Пятая строка
)
Sort, Text
MsgBox, %Text%
Всё оказалось гораздо проще. Спасибо!
А как удалить определенную строку, т.е. строку с определенным текстом или номер строки?
String =
(
Первая строка
Вторая строка
Третья строка
Четвертая строка
)
; удаляем строчку "Третья строка"
Loop, parse, String, `n, `r
NewString1 .= A_LoopField = "Третья строка" ? "" : A_LoopField . "`n"
; удаляем последний перенос строки, если существует:
NewString1 := RegExReplace(NewString1, "(.*)\R$", "$1")
MsgBox, % NewString1
; удаляем вторую строку
Loop, parse, String, `n, `r
NewString2 .= A_Index = 2 ? "" : A_LoopField . "`n"
; удаляем последний перенос строки, если существует:
NewString2 := RegExReplace(NewString2, "(.*)\R$", "$1")
MsgBox, % NewString2
Спасибо, teadrinker! Только хотелось бы удалять в текстовом файле.
Считываем текст из файла в переменную с помощью FileRead, проводим разбор, как в примере выше, создаём новый файл из полученного текста (FileAppend).
Еще раз спасибо, teadrinker!
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться