Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Работа со строками в Паскале :)))

тут можно задать вопрос по скриптингу
Post Reply
Stels
Novice
Novice
Posts: 118
Joined: 15.02.2011 12:15

Работа со строками в Паскале :)))

Post by Stels »

Есть задача:
Взять часть строки, превратить ее в цифры и сравнить с заданным значением. А если более точно и ближе к уо, то из клилока вытащить прочность предмета.

Не могу найти команду, которая позволит вытащить часть строки с нужного символа нужное кол-во символов и сделать что-то типа strtoint

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

Code: Select all

var PA, PA2: string;
i,a,b: integer;
const
text = '55'; //нужное значение прочности
n = 81; //позиция с которой идёт прочность
begin
PA := GetCliloc($716BFCEA);
a:=pos(text,PA);
if a > n then
    begin
    PA2:=copy(PA,n,2);
    b:=StrToInt(PA2);    
    end;
end.
Прочность указывается вида 55/55, где первое значение - это текущая прочность, второе - максимальное
Stels
Novice
Novice
Posts: 118
Joined: 15.02.2011 12:15

Re: Работа со строками в Паскале :)))

Post by Stels »

по сути там тоже самое написано, что и я сделал. Видимо стандартных функций нету. А для использования 1 раз писать отдельную функцию нет смысла
NoSilence
Novice
Novice
Posts: 94
Joined: 02.01.2010 13:55

Re: Работа со строками в Паскале :)))

Post by NoSilence »

Можно поинтересоваться, а что вы хотели передать в таком случае в стандартную функцию, чтобы она вернула вам 55 из строки клилока?
Или вы имели ввиду регулярные выражения?
///
Stels
Novice
Novice
Posts: 118
Joined: 15.02.2011 12:15

Re: Работа со строками в Паскале :)))

Post by Stels »

NoSilence wrote:Можно поинтересоваться, а что вы хотели передать в таком случае в стандартную функцию, чтобы она вернула вам 55 из строки клилока?
Или вы имели ввиду регулярные выражения?
Как пример по той ссылке, что-то в таком роде

Code: Select all

StrToInt('строка',a,b)
где a - символ с которого считываем
b - кол-во символов
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Работа со строками в Паскале :)))

Post by Vizit0r »

нет, такого нет. Это упрощение ради упрощения - просто плодить количество методов, в которых в итоге кодер просто тонет.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Tomers
Novice
Novice
Posts: 99
Joined: 06.08.2009 11:51

Re: Работа со строками в Паскале :)))

Post by Tomers »

Я подобную фичу делал на своем булочнике. Нужно было вытащить кол-во требуемых предметов из заказа.
Для этого подойдет функция COPY.
Нужно просто скопировать символы между пробелами после слова durability, ну или просто вырезать 2 символа
что-то типа такого выйдет:

Code: Select all

strtoint(copy(stroka,pos(durability',stroka)+2,2));
Если не разберешься, стукни в личку, слеплю тебе велосипед.
Post Reply