Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
Артём К   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.006 c
3-87243
coba
2003-02-07 15:58
2003.02.27
Как правильно написать дату в запросе?


14-87624
Дмитрий К.К.
2003-02-10 06:19
2003.02.27
Именинники 10 февраля


1-87556
ltexcimer
2003-02-17 13:35
2003.02.27
Удалить строку StringGrid.


1-87380
sidor
2003-02-16 14:00
2003.02.27
Spinedit1


3-87282
Makhanev A.S.
2003-02-08 15:04
2003.02.27
DBGrid:





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский