![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Очистить строку от спецсимволов [D7, 2000]
unregistered_member © (2007-04-14 22:42:00)Бодрого времени суток! Подскажите как очистить строку от спецсимволов (перевода строки, etc)? Требуется загрузить в string текст из файла, и работать с ним, а спецсимволы мешаются, может какая функция для очистки есть; нужно получить просто строку состоящую из стандартных "видимых" символов.
unregistered_member (2007-04-16 17:22:00) [1]Спасибо откликнувшимся, сделал с стиле
if ORD(S[N])<32 ...
Amoeba (2007-04-16 11:05:00) [2]Скачай библиотеку QStrings (бесплатно, в исходниках). Поиск поможет.
проходивший мимо (2007-04-15 15:26:00) [3]можно сделать так:
(использую MEMO, т.к. не помню как подобный массив называется, толи TList, толи TStringList, вобщем не помню)
var
s,stroka:string;
i:integer;
begin
Memo1.Lines.LoadFromFile('data.txt');
stroka:='';
for i:=0 to Memo1.Lines.Count-1 do
stroka:=stroka+Memo1.Lines[i];
Edit1.Text:=stroka;
Плохиш (2007-04-15 12:45:00) [4]
> unregistered_member (15.04.07 12:14) [11]
> Ну как всегда, еще предложения по сути вопроса есть?
Спасибо, порадовал...
unregistered_member (2007-04-15 12:14:00) [5]Ну как всегда, еще предложения по сути вопроса есть?
Плохиш (2007-04-15 04:29:00) [6]
> Германн © (15.04.07 01:10) [9]
Говоришь душу греет? Хм,хм... <кровожадно прищуриваясь, точа ржавую шашку> :-))
Германн (2007-04-15 01:10:00) [7]
> Anatoly Podgoretsky © (15.04.07 00:51) [8]
>
> Ты наверно путаешь с типом string
>
Только тип ShortString не трогайте, пожалуйста! Он греет мою душу уже много лет. И, надеюсь, останется со мной, пока смерть не разлучит нас! :-)
Anatoly Podgoretsky (2007-04-15 00:51:00) [8]Ты наверно путаешь с типом string
McSimm (2007-04-15 00:27:00) [9]
> если вы из строки этот символ уберёте, то будет уже не исходная
> строка
Работу со строками необходимо вообще запретить. Как ересь :)
Плохиш (2007-04-15 00:15:00) [10]
> unregistered_member (14.04.07 23:28) [4]
> строка = массив символов, даже если в них затесался символ
> перевода строки
Если в строке "затесался" какой-нибуть символ, то кто-то этот символ туда с какой-то целью вставил и если вы из строки этот символ уберёте, то будет уже не исходная строка. Смысл обрабатывать фразу "Казнить нельзя, помиловать" как "Казнить, нельзя помиловать" вижу только применительно к действию над вами...
{RASkov} (2007-04-14 23:39:00) [11]> [4] unregistered_member (14.04.07 23:28)
Садись... пять :)
unregistered_member (2007-04-14 23:28:00) [12]строка = массив символов, даже если в них затесался символ перевода строки, то это все равно одна строка
В выводе этой строки она разобьется на две, но это уже в выводе...
{RASkov} (2007-04-14 23:00:00) [13]или такой вариант:
for N:= Length(S) downto 1 do
if ORD(S[N])<32 then Delete(S, N, 1);
или
for N:= Length(S) downto 1 do
if not (S[N] in ['A'..'я', 'A'..'z', ' ', '0'..'9',.....]) then Delete(S, N, 1);
Anatoly Podgoretsky (2007-04-14 23:00:00) [14]> unregistered_member (14.04.2007 22:42:00) [0]
Если есть символы перевода строки, то это уже две строки.
Плохиш (2007-04-14 22:52:00) [15]
for i:=1 to length(s) do if s[i]<#32 then s[i]:=#32;
Только нафига она эта строка после этого нужна будет?