Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Очистить строку от спецсимволов [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;

Только нафига она эта строка после этого нужна будет?


Наверх

Титульная страница Поиск, карта сайта Написать письмо