С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069

Первый символ в edite заглавный

09.08.2011, 18:49. Показов 3914. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Будьте здравы бояры!
Отлаживаю поиск и вот такая проблема так как в базе адреса идут с заглавной буквы поиск их не видит,
вобщем мне нужно чтоб первый символ введенный в Edit всегда становился заглавным даже если я ввожу не заглавную букву.
У кого есть грамотные мысли на сей счет?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.08.2011, 18:49
Ответы с готовыми решениями:

В созданном текстовом файле первый символ каждой строки заменить на первый символ предыдущей строки. Первая ст
В созданном текстовом файле первый символ каждой строки заменить на первый символ предыдущей строки. Первая строка остается без изменений. ...

На awk первый символ каждой строки заменить на первый символ предыдущей строки
Здравствуйте,нужна ваша помощь! Задание: В созданном текстовом файле "file" первый символ каждой строки заменить на первый символ...

Строковый типа данных. Во введённом слове заменить первый и последний символ на символ “*”
2. Задание - Применение строковых процедур и функций Во введённом слове заменить первый и последний символ на символ “*”.

18
 Аватар для pomkalk
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
09.08.2011, 19:06
Глянь здесь, думаю разберешься, если что напиши сюда, подробнее расскажу!
1
145 / 100 / 6
Регистрация: 11.03.2010
Сообщений: 477
09.08.2011, 19:10
проще наверно не символ в эдите делать заглавным, а копировать значения едита в AnsiString str1
а значение с которым сравниваешь например в AnsiString str2 а потом сравниваешь

C++
1
2
3
4
if (str1.UpperCase == str2.UpperCase)
{
//делай что нужно если совпало.
}
1
 Аватар для pomkalk
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
09.08.2011, 19:12
В OnChange TEdit как то так
C++
1
2
3
4
if (this->Edit1->Text.Length())
{
    this->Edit1->Text[0] = toupper(this->Edit1->Text[0]);//Возможно 0 нужно будет заменить на 1
}
+ toupper скорее всего есть эквивалент ToUpper в самом буилдере

Добавлено через 1 минуту
а, забыл, еще есть bool isupper(char), в общем все просто и все это тут
2
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
09.08.2011, 19:15  [ТС]
Я вот так попробовал, чесно говоря я не уверен что правильно делаю
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <vcl.h>
#pragma hdrstop
  #include <ctype.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
int toupper(char);
 
int a;
a[0] = toupper(a[0]);
}
//---------------------------------------------------------------------------
ну и само собой компилятор не доволен
Что можно добавить?
Я извинияюсь пока писал не видел все ваши ответы, читаю...
0
 Аватар для pomkalk
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
09.08.2011, 19:20
)) Это функция(int toupper(char)) возвращает код символа заглавного
C++
1
2
3
4
5
6
7
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
if (this->Edit1->Text.Length())//Если в Edit'e что то ввседени, тогда выполняем
{
    if (!isupper(this->Edit1->Text[0])) = toupper(this->Edit1->Text[0]);//присваеваем первому символу его значение в заглавном виде!
}
}
Вот так попробуй, если ошибка будет, тогда 0 замени на 1, в двух местах!, тогда все норм должно быть
1
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
09.08.2011, 19:41  [ТС]
Пробую и программа виснет, а когда на еденицу меняю то ничего не происходит.
в любом случае спасибо!

ошбка
C++
1
[C++ Error] Unit1.cpp(22): E2188 Expression syntax
Добавлено через 13 минут
Беда в том что мне только первый символ надо из нижнего регистра в верхний править, дураку в помощь.
0
 Аватар для pomkalk
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
09.08.2011, 19:48
Блин, по моему там немного по другому нужно, может быть не через [] а .at() попробывать!
в UnicodeString через [] вообще символы менять вроде даже нельзя, не помню.

Добавлено через 1 минуту
C++
1
Edit1->Text.At(0) = toupper(Edit1->Text.At(0))
1
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
09.08.2011, 21:44  [ТС]
Посидел попробовал несколько вариантов и никак
Нет больше вариантов?
0
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
09.08.2011, 21:52
C++
1
2
3
4
 AnsiString s1=Edit1->Text,s2;
 s2=s1.UpperCase();
 s1[1]=s2[1];
 Edit1->Text=s1;
1
 Аватар для pomkalk
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
09.08.2011, 21:54
Есть
C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
     if (this->Edit1->Text.Length())
     {
          if (islower(this->Edit1->Text[0]))
          {
               string a(this->Edit1->Text.c_str());
               a[0] = toupper(a[0]);
               this->Edit1->Text = a.c_str();
          }
     }
}
Вот как то так, тут кое чего еще может продправить нужно, например string на String
if (islower(this->Edit1->Text[0])) ноль на 1 изменить!
1
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
09.08.2011, 22:04  [ТС]
Мне уже не удобно, не получается, утром попробую на свежую голову. Спасибо.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
09.08.2011, 23:33
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
if (!Edit1->Text.IsEmpty())
 {
 int pos = Edit1->SelStart;
 
 String S = Edit1->Text;
 S[1] = toupper(S[1]);
 Edit1->Text = S;
 
 Edit1->SelStart= pos;
 }
}
2
145 / 100 / 6
Регистрация: 11.03.2010
Сообщений: 477
10.08.2011, 14:11
Цитата Сообщение от Samrisbe Посмотреть сообщение
Мне уже не удобно, не получается, утром попробую на свежую голову. Спасибо.
я вот все никак опнять не могу, зачем городить огород если можно сделать елементарное приведение к верхнему регистру всего слова целиком при сравнении ??
тебе кстати в этом топике на эту мысль уже 2 раза наводили
1
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
10.08.2011, 14:31
На мой взгляд пользователю незачем видить что первый символ изменяется, я бы это делал в самой ф-ции поиска
1
5 / 5 / 0
Регистрация: 09.08.2011
Сообщений: 12
10.08.2011, 16:09
А почему бы Вам не оставить "дураку" "дураково": пусть пользователь вводит имя хоть с прописных, хоть с заглавных букв,- а поиск организовать без учета регистра (non-case sensitive)? По-моему, на результате поиска это не должно отразиться?
1
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
10.08.2011, 22:23  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
if (!Edit1->Text.IsEmpty())
 {
 int pos = Edit1->SelStart;
 
 String S = Edit1->Text;
 S[1] = toupper(S[1]);
 Edit1->Text = S;
 
 Edit1->SelStart= pos;
 }
}
Реально работает с латинскими символами, а с кирилицей не вариант по такомуже принципу?

Насчет изменений поиска сложней я его еле построил а потом с трудом скомпелировал.
1
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
10.08.2011, 23:06
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
if (!Edit1->Text.IsEmpty())
 {
 int pos = Edit1->SelStart;
 
 String S1,S2;
 
 S1 = Edit1->Text;
 S2 = (AnsiString(Edit1->Text)).UpperCase();
 
 S1[1] = S2[1];
 
 Edit1->Text = S1;
 Edit1->SelStart = pos;
 }
}
2
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
10.08.2011, 23:10  [ТС]
Спасибо точто нужно!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.08.2011, 23:10
Помогаю со студенческими работами здесь

Из строк, которые содержат символ '1' или '2', удалить первый встречающийся в строке символ, равный латинской букве 'a'
Дана матрица размером 4×3, элементами которой являются строки. Необходимо в системе Турбо-Паскаль написать программу, которая выполняет...

Поменять местами первый символ ‘А’ и последний символ ‘Y’
Поменять местами первый символ ‘А’ и последний символ ‘Y’, полученный массив вывести на экран дисплея.

Ввести слово и вывести первый символ, всю строку и последний символ
mov ah,02h mov dl,10 int 21h mov ah,02h mov dl,13 int 21h mov AH,09h ; vivod sms lea dx,msg

Имеется текстовый файл. Напечатать: а) первый символ первой строки б) k-ый символ n-ой строки
Имеется текстовый файл. Напечатать: а) первый символ первой строки б) k-ый символ n-ой строки

Как поменять символ первой строки на первый символ второй строки?
Вот программа по нажатию кнопки она сравнивает две строки, если они одинаковые, то первый символ первой строки нужно заменить на последний...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru