Что нового

[Данные, строки] Работа с текстом

[email protected]@f

Новичок
Сообщения
44
Репутация
2
Вот есть у нас в переменной текст. А как с ним работать? Т.е. найти определенные символы в нём, скопировать часть, дописать/удалить часть и т.п.
Я извиняюсь, если об этом где-то уже написано, я сам не нашел(покрайней мере на форуме), если всё-же такая информация имеется - прошу дать ссылку, а не пинать ногами :-[ :ok:
 

killbond

Осваивающий
Сообщения
96
Репутация
32
AutoIt Help --> Function Reference --> String Management
UDFs --> String Management

Справка AutoIt --> Указатель функций --> Обработка текста
Справка AutoIt --> Указатель библиотечных функций --> Tекст

Или же здесь - Online-справка (англ.) тебе подойдут все, которые начинаются со "string"
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
[email protected]@f
А если после изучения справки, как очень правильно посоветовал killbond, что-то не получается, то сюда, на форум с конкретным вопросом: имеется текст "...Кусок текста с характерными признаками...", из него надо получить: "Конкретный результат".
И на 99,99% Вы получите правильное решение. :IL_AutoIt_1:
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
[email protected]@f

В AutoIt, к сожалению, нет возможности обращаться непосредственно к определенному символу строки как к элементу массива, поэтому, как правило, все операции со строками в AutoIt производятся с помощью String... функций (их более чем достаточно).
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Yashied
Но ведь с помощью функции StringSplit() можно преобразовать текст в массив. Разве это не дает возможность
Yashied [?]
...обращаться непосредственно к определенному символу строки как к элементу массива...
Или я не прав?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
Например в Pascal можно было работать со строками, как с массивами.

Код:
VAR
    Str:String
BEGIN
    Str:='String';
    Str[0]:=3;
    Str[1]:='P'
END
А StringSplit() просто разбивает (не преобразовывает) строку на части.

StringSplit("Str1|Str2|Str3", "|") -> "Str1", "Str2", "Str3"
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 470
Репутация
2 401
Yashied [?]
Например в Pascal можно было работать со строками, как с массивами.
Ну тут почти одно и тоже:

Код:
Dim _
    $Str
#BEGIN :)
    $Str = StringSplit('String','');
    $Str[0]=3;
    $Str[1]='P'
#END


ну или вот так для полноценности:

Код:
Dim _
    $Str

#BEGIN :)
    $Str=_Split('String');
    $Str[0] = 3;
    $Str[1] = 'P'
	$Str = _Join($Str)
#END

ConsoleWrite($Str & @CRLF)

Func _Split($sStr)
	Local $aRet[StringLen($sStr)]
	
	For $i = 0 To UBound($aRet)-1
		$aRet[$i] = StringMid($sStr, $i+1, 1)
	Next
	
	Return $aRet
EndFunc

Func _Join($aStr)
	Local $sRet
	
	For $i = 0 To UBound($aStr)-1
		$sRet &= $aStr[$i]
	Next
	
	Return $sRet
EndFunc
 
Автор
P

[email protected]@f

Новичок
Сообщения
44
Репутация
2
Большое всем спасибо за ответы! Ну поленился в справку зайти :-\
Тема решена ;)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Yashied
Упаси меня бог спорить с Большими Начальниками, но я считал, что мы тут AutoIt обсуждаем...
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 470
Репутация
2 401
madmasles [?]
я считал, что мы тут AutoIt обсуждаем
Yashied просто привёл пример сравнения, чтобы показать насколько просто и доступно оно делается в языках высокого уровня.
 

forfrends

Новичок
Сообщения
176
Репутация
3
Dim _
$Str
#BEGIN :smile:
$Str = StringSplit('String','');
$Str[0]=3;
$Str[1]='P'
#END
А если заранее не известно содержание $Str ? Или, например, оно меняется динамически? Как тогда? Подскажите, пожалуйсто
 

gregaz

AutoIT Гуру
Сообщения
1 166
Репутация
299
Верх