Как убрать из строки пробелы?

Программа получает содержимое интернет страницы (ответ от сервера) и сохраняет это в файл.
Далее нужно произвести парсинг (что я и делаю) и удалить из строки все пробелы.
Преобразовать число, например из 10 000 в 10000.
По непонятной причине это не выходит. Как это сделать?

//Запись в файл
procedure get_https_file_content_to_file(https_url:string);
var
IdHTTP1: TIdHTTP;
IdSSLIOHandlerSocket1: TIdSSLIOHandlerSocket;
server_response:ansistring;
text_file: textfile;
begin
IdHTTP1.HandleRedirects:=true;
IdHTTP1.RedirectMaximum:=15;
IdHTTP1:=TIdHTTP.Create(nil);
IdSSLIOHandlerSocket1:=TIdSSLIOHandlerSocket.Create(IdHTTP1);
IdSSLIOHandlerSocket1.SSLOptions.Method := sslvTLSv1;
IdHTTP1.IOHandler:=IdSSLIOHandlerSocket1;
server_response:=utf8toansi(IdHTTP1.Get(https_url)); //Мы получили в utf8, переводим это в Ansi
//Нам нужен файл в кодировке Ansi т.к. часть функций работают с этой кодировкой
assignfile(text_file, ExtractFilePath(Application.ExeName)+'data\pharsed_data.txt');
rewrite(text_file);
write(text_file, server_response);
Closefile(text_file);
end;

//Далее вызов функции и запись данных в файл. Файл в кодировке ansi (открывал notepad++)
//Теперь мне нужно осуществить парсинг

//Часть кода
//string_from_file:ansistring; damage:ansistring;
file_path:=ExtractFilePath(Application.ExeName)+'data\pharsed_data.txt';
AssignFile(text_file,file_path);
Reset(text_file);
while not EOF(text_file) do
begin
readln(text_file, string_from_file);

//Функция поиска - мы успешно нашли этот текст
if  CountPos('Урон', string_from_file)>0  then
begin
damage:=get_stext('Урон', 'Конец_урона', string_from_file); //Успешно получили текст между словами Урон Конец_урона
main_form.Memo1.Lines.Add(damage); //В поле мемо видим текст 10 000

//ТУТ НАДО УДАЛИТЬ ИЗ СТРОКИ damage все пробелы т.е. хочу получить 10000
//damage:=StringReplace(damage, ' ', '', [rfReplaceAll]);
damage:=AnsiReplaceStr(damage, ' ', '');
//damage:=StringReplace(damage,' ','',[rfReplaceAll, rfIgnoreCase]);
//damage:=AnsiReplaceStr(damage,' ','',[rfReplaceAll, rfIgnoreCase]);
main_form.Memo1.Lines.Add(damage); //В поле мемо снова 10 000 Странно...

//А ЕСЛИ ТАК
damage:=' 10 000';
damage:=AnsiReplaceStr(damage, ' ', '');
main_form.Memo1.Lines.Add(damage); //В поле мемо  10000 - работает
//Почему не сработало с чтением из файла?
end;
end;
CloseFile(text_file);
  • Вопрос задан
  • 672 просмотра
Решения вопроса 1
alsopub
@alsopub
С большой вероятностью у вас там не пробел, а либо   либо какой-то друго непечатаемый символ типа "неразрывного пробела".
Если дадите ссылку на страницу - скажу точнее что там.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы