Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.27;
Скачать: CL | DM;

Вниз

Как удалить пробелы до первого символа?   Найти похожие ветки 

 
Артём К   (2003-02-14 12:37) [0]

Привет всем!

У меня есть Edit, в котором кочу вводить имя файла!
Очевидно, оно должно быть не пустым.
Использую if (Length(Editq.Text) <> 0) then ...
Но если мы просто введём пробел и больше ничего, то длина уже не равна нулю. А имя файла, соответственно, будет пустым (вернее пробел).

Вопрос: Как удалить все пробелы, если больше ничего нет.
Как удалить все пробелы до первого символа.

Заранее спасибо!


 
stone ©   (2003-02-14 12:38) [1]

StringReplace


 
Calm ©   (2003-02-14 12:40) [2]

Использовать TOpenDialog религия не позволяет?


 
MBo ©   (2003-02-14 12:43) [3]

trim(left)


 
Palladin ©   (2003-02-14 12:44) [4]

Trim() + F1


 
Романов Р.В. ©   (2003-02-14 12:45) [5]

F1 - Trim function, see also


 
Dms   (2003-02-14 13:44) [6]

Используй FileExists( Edit1.Text )


 
Anatoly Podgoretsky ©   (2003-02-14 13:47) [7]

Для имени файла не имеет смыслв удалять в начале пробелы, зачем делать лишнюю работу, ради эстетики?


 
Palladin ©   (2003-02-14 13:56) [8]


> Anatoly Podgoretsky © (14.02.03 13:47)

А если к имени файла потом путь цепляется?


 
mate ©   (2003-02-14 15:35) [9]

В событии onKeyPress на Edite написать

if (key=#32)and(length(Edit1.Text)=0) then
key:=chr(0);

и не мучаться с пробелами в начале ;)


 
Романов Р.В. ©   (2003-02-14 15:57) [10]

mate © (14.02.03 15:35)
Пытливый юзер найдет кучу способов ввести в твой Edit пробелы в начале строки :)


 
artton   (2003-02-15 03:43) [11]

Все до безобразия просто:
s:=Edit1.Text;
While s[1]=" " do Delete(s,1,1);
IF Length(s)=0 Then ShowMessage("Крутой не работающий адрес!");
Else //s-строка содержащая адрес, в начале не имеет пробелов, дальнейшая проверка на Вашей совести.

Все.


 
Anatoly Podgoretsky ©   (2003-02-15 11:19) [12]

Palladin © (14.02.03 13:56)
Это уже другой вопрос, тем более, что речь шла только об совсем пустом имени. Есть пробел в начале или нет особой роли не играет (кроме случая дополнительных манипуляций с этим именем), у него по контексту выходит, что у мол него из за этого просто возникает ошибка, но так она возникнет и в других случай, не только когда пустое имя но и когда оно просто неверное.
А при этом расклае выходит, что у него неверный дизайн, надо белать обработку ошибок и я не сомневаюсь, что у него как у большинства начинающих ее просто нет, это не только интуицая или статистика, эта уверенность базируется на его предыдущих вопросах в конференции и в чате.

Конечно удаление пробелов в начале имени как правило не вредит, чего не скажешь про конечные пробелы, если к имени добавляется расширение в программе, а не пользователем


 
Anatoly Podgoretsky ©   (2003-02-15 11:24) [13]

mate © (14.02.03 15:35)
Не надо мцчаться на этапе ввода и насиловать пользователя, такие вещи делаются по окончанию его.

artton (15.02.03 03:43)
Это точно безобразие делать такое в Дельфи 6, я бы понял если бы этот код был для ранних версий Дельфи, не было в них функции TrimLeft и даже Trim.


 
Palladin ©   (2003-02-15 12:03) [14]


> Anatoly Podgoretsky © (15.02.03 11:19)

Не будут спорить, ибо решать, что делать все таки автору. Черт его знает что он дальше с этим именем делает.


> artton (15.02.03 03:43)

Ай молодец, изобрел велоспед.


 
mate ©   (2003-02-15 12:41) [15]

А для пытливого юзера можно написать в событии onChange

while Edit1.Text[1]=" " do
Edit1.Text:=Copy(Edit1.Text,2,length(Edit1.Text)-1);

и пусть юзер мучается ;)


 
Романов Р.В. ©   (2003-02-15 13:10) [16]


> mate

А Ctr+V


 
mate ©   (2003-02-15 13:18) [17]


> Романов Р.В. © (15.02.03 13:10)
>
> > mate
>
> А Ctr+V

Я что - то и не знал что при Сtr+V (но наверное Сtrl ) не наступает событие onChange , т.е. содержимое эдита значит при вставке в него из буффера вообще не меняется. 8-|


 
Романов Р.В. ©   (2003-02-15 13:32) [18]

mate © (15.02.03 13:18)
Не с Ctr+V все нормально, но при удалении последнего символа у тебя возникнет AV.


 
mate ©   (2003-02-15 13:35) [19]

Ну ладно уговорил, тогда

while (Edit1.Text[1]=" ")and(length(Edit.Text)>0) do
Edit1.Text:=Copy(Edit1.Text,2,length(Edit1.Text)-1);



Страницы: 1 вся ветка

Текущий архив: 2003.02.27;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.017 c
1-87503
Andrey_S
2003-02-13 17:14
2003.02.27
Кнопки как в FrontPage слева


1-87371
kronprince
2003-02-17 11:45
2003.02.27
Ведение лог-файлов


14-87703
SniZ
2003-02-11 22:12
2003.02.27
Dark BAsic


6-87600
Кокандокало
2003-01-05 20:29
2003.02.27
Обработка ошибки сокета..


14-87663
Дмитрий К.К.
2003-02-11 07:46
2003.02.27
TColor