1

Тема: AHK: Удаление пробелов в тексте

Еще раз приветствую. Например, в переменной Test текст: "В лесу трава". Нужно чтобы на выводе выводило: "Влесутрава"

2

Re: AHK: Удаление пробелов в тексте

Test := "В лесу трава"
StringReplace Test, Test,` ,,All
MsgBox % Test

3

Re: AHK: Удаление пробелов в тексте

В списке escape-последовательностей не видел такого сочетания.

4

Re: AHK: Удаление пробелов в тексте

Потому что таког сочетания нет, поэтому код у Flasher в принципе не верен, хоть и работает.

msgbox %A_Space%
msgbox ` 

5

Re: AHK: Удаление пробелов в тексте

Malcev пишет:

код у Flasher в принципе не верен, хоть и работает

Верный код - тот, что работает, а не тот, что написан с чьей-то точки зрения верно.

6 (изменено: Malcev, 2016-06-11 15:55:08)

Re: AHK: Удаление пробелов в тексте

Приведу 2 аргумента.
1) В справке нигде не указано, что пробел так должен экранироваться.
2) Это частный случай работоспособности кода.
Так уже работать не будет:

Test := "В лесу трава"
StringReplace Test, Test, ` 
MsgBox % Test

То есть своим примером вы заведомо даете неверную информацию о том как экранируются пробелы в автохотки, что в дальнейшем может привести человека к новым вопросам.

7

Re: AHK: Удаление пробелов в тексте

1-й аргумент меня не убеждает. "Тыщу" раз сталкивался. 2-й - в мою пользу.
Так не будет, ибо этот код без запятой уже неверен. Второй пример:

Test := "В лесу трава"
StringReplace Test, Test,В` лесу` ,
MsgBox % Test

8 (изменено: Malcev, 2016-06-11 16:08:33)

Re: AHK: Удаление пробелов в тексте

Вот из-за этих условий, что так будет работать, а так не будет.
Что в конце обязательно должна быть запятая, хотя в справке опять же нигде такого не указано, я и назвал ваш код в принципе не верным. Даже вредным.
На мой взгляд, если бы вопрос был - придумайте всевозможные способы удаления пробела, тогда он бы имел бы место быть.

9 (изменено: Flasher, 2016-06-11 16:13:38)

Re: AHK: Удаление пробелов в тексте

Назвали и ладно. Я не в обиде. Каждый может ошибаться. Вредный - это нормально. Я, видимо, такой люблю (у меня такого много). Мне важнее сократить. А вопросы тут никого не пугают. Код в две строчки - не повод растягивать демагогию. Спросил - ответили.

"На мой взгляд" -  у меня несколько иные взгляды. Я чуть дальше от ортодокса.

10 (изменено: Malcev, 2016-06-11 16:17:23)

Re: AHK: Удаление пробелов в тексте

А как быть в таком случае?

Test := "В лесу трава"
IfInString, test, ` ,
   msgbox Flasher space found
IfInString, test, %A_Space%
   msgbox Malcev space found

Хотя вот так можно:

Test := "В лесу трава"
IfInString, test, ` `
   msgbox Flasher space found
IfInString, test, %A_Space%
   msgbox Malcev space found

11

Re: AHK: Удаление пробелов в тексте

Недокументированные возможности - сегодня они есть, завтра их уберут.

12

Re: AHK: Удаление пробелов в тексте

newtext := "Это пример нашего текста"
RegExReplace(newtext , "[\s]+")

На выходе получается:

Этопримернашеготекста

13 (изменено: Malcev, 2016-06-16 14:32:55)

Re: AHK: Удаление пробелов в тексте

RegExReplace(newtext , "[\s]+")

Тут [] без надобности.
И \s уберет также все переносы строк и tab.
Правильней так:

RegExReplace(newtext , " +")