Help — коллекция статей, исходников, книг, ответов на вопросы программирования на языке программирования Delphi и Pascal.
— это среда быстрой разработки, в которой в качестве языка программирования используется язык Delphi. Язык Delphi — строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам Object Pascal.
На сайте Delphi-Help вы можете скачать книги по Delphi, для дальнейшего изучения этого удивительного языка программирования. Также в файловом архиве доступны компоненты, исходники, программы для облегчения разработки своих собственных приложений. Все материалы и файлы на сайте бесплатны.
Это необходимо знать каждому программисту:
- Работа с ADO в Delphi
- Цикл с постусловием (REPEAT-UNTIL)
- Цикл с параметром (FOR)
- Цикл с предусловием (WHILE-DO)
- Циклические алгоритмы. Цикл с предусловием.
- Хранимые процедуры
- Создание и изменение базы данных в InterBase/Firebird
- Использование TWebBrowser (статья)
- Одномерные массивы. Формирование массива и вывод его элементов
- Руководство по TDbf
- Копирование и восстановление базы данных в InterBase / Firebird
- Алгоритм 3. Сортировка шейкером
- Работа с BLOB-полями в клиентских приложениях InterBase и Firebird на основе компонентов FIBPlus
- SQL-запросы в Delphi
- Учетные записи пользователя в InterBase/Firebird
- Ограничения базы данных
- TADOConnection
- Индексы
- Компонент Chart
- Типизированные файлы
- Список ошибок BDE
- QuickReport руководство
- Алгоритм 2. Пузырьковая сортировка
- Задача 579 на Pascal — Шифр Цезаря
- FIBPlus: Обработка ошибок базы данных
- Нетипизированные файлы
- Решение уравнения методом хорд, методом касательных (метод Ньютона), методом половинного деления, методом простых итераций
- Дипломная работа: Разработка базы данных для информатизации деятельности предприятия малого бизнеса Delphi
- Количество вхождений подстроки в строку
- Использование текстовых файлов для импорта и экспорта
- Сумма прописью (хорошая функция)
- Создание собственной кнопки в Delphi
- Firebird взаимодействие с NULL
- Как посчитать факториал?
- Как узнать номер недели данного дня в году?
- Devrace FIBPlus: Оптимизация сетевого трафика в приложениях на Delphi и C++ Builder
- Счетчик посещений на Delphi
- Cпроектировать и написать программу «Интерпретатор» на Pascal
- Перевод чисел из одной системы исчисления в другую
- Rave Reports-руководство разработчика
Общение
Авторизация
Пароль
Запомнить меня
- Забыли пароль?
- Забыли логин?
- Типизированные файлы
Типизированные файлы Тип файлов, для которого нет поддержки в OS…
- Задача 579 на Pascal — Шифр Цезаря
Задача 579 на Pascal — Шифр Цезаря Шифр Цезаря. Этот…
- Нетипизированные файлы
Нетипизированные файлы Третий тип файлов Паскаля, это нетипизированные файлы, этот…
- Использование текстовых файлов для импорта и экспорта
Использование текстовых файлов для импорта и экспорта Текстовые файлы являются…
- Как изменить дату создания файла?
Как изменить дату создания файла? function SetFileDateTime( const FileName: string;…
- Как изменить атрибуты файла?
Как изменить атрибуты файла? r — ReadOnly h — Hidden…
Счетчики
Файловый архив — популярное
FastReport full source v5. 2.12 | 25996 |
Базы данных в Delphi | 22078 |
Практикум по Delphi для решения прикладных задач | 19095 |
Delphi. Учимся на примерах | 16267 |
Delphi 7 для профессионалов | 14424 |
Программирование в Delphi 7 | 7107 |
Delphi. Профессиональное программирование | 6690 |
Основы Delphi. Профессиональный подход | 5219 |
Assembler. Учебный курс | 4084 |
Графика в проектах Delphi | 4082 |
Розница ИП v1.3 | 2769 |
Delphi 7 | 2509 |
DevExpress VCL Component | 2454 |
TXLSFile 4.0 | 2078 |
AlphaControls package | 2034 |
Последние статьи
- Рисуем на рабочем столе
Вы можете использовать поверхность рабочего стола для вывода любой графики. Этот способ может понадобится для написания различных напоминалок, показ праздников. Вы можете поселить на рабочем столе забавного персонажа из комикса…
- Работа с потоками в Delphi
Нередко встречал на форумах мнения, что потоки не нужны вообще, любую программу можно написать так, что она будет замечательно работать и без них. Конечно, если не делать ничего серьёзней…
- Перестановка чисел без третей переменой
Перестановка чисел без третей переменной. В данной статье рассмотрим способ, как поменять местами значения двух переменных без использования третей. Для этого нам понадобится, скажем, два edit и одна кнопка. Разместите…
Последние комментарии
Работа со строками Delphi. Длина строки, поиск строки и пр. / Delphi / ADODO.ru
Строка – последовательность символов. В стандартных приложениях строковый тип используется очень часто. Для того, чтобы можно было работать со строковыми значениями, следует использовать определенный строковый тип или массив.
Стоит отметить тот факт, что в Delphi есть возможность присваивать строковые значения массиву. Что касается строковых типов, то самым популярным является String. В зависимости от директивы $H, которая по умолчанию всегда включена, компилятор интерпретирует string по-разному.
Например, если включить директиву, то компилятор будет интерпретировать string в качестве типа AnsiString, который представляет собой длинную строку с нулевым символом на конце.
В противном случае, тип string будет представлен как ShortString, который является короткой строкой без нулевого символа в конце. Работа со строками в Delphi требует от программиста знания определенного перечня специальных функций.
Поиск строки Delphi
В языке реализована возможность осуществлять поиск строки Delphi в строке. Для этого используется функция AnsiPos, которая возвращает позицию в строке первого вхождения. В том случае, если строка не будет найдена, то функция вернет нулевой результат ”0”.
Существует еще ряд команд, которые позволяют совершать различные манипуляции со строками. Здесь можно отметить AnsiIndexStr. Данная функция проводит сравнение строки со списком строк. В качестве результат она возвращает соответствующий индекс. Команда AnsiMatchStr вернет ”истина” в том случае, если строка будет полностью соответствовать какой-нибудь строке из заданного списка.
Выполняя поиск строки Delphi иногда нужно узнать последнюю позицию совпадения указанных символов. Для этого используется функция LastDelimiter.
Стоит отметить, что поиск строки можно выполнить и при помощи команды StrScan.
Зная данные функции, работа со строками будет выполнена намного быстрее и легче.
Перенос строки Delphi
Есть возможность управлять форматированием строк. Например, здесь можно адаптировать перенос строки Delphi как под Unix, так и под Windows.
Помимо этого, осуществить перенос строки можно благодаря функции WrapText.
Длина строки Delphi
Для того, чтобы получить длину строки Delphi, следует воспользоваться функцией Length(). Записывается она следующим образом:
i:=Length(s)
Благодаря данной функции очень упрощается работа со строками.
Строку в число
Delphi позволяет преобразовывать строку в число и число в строку. Самыми часто используемыми функциями в этом случае являются:
1. IntToStr,
2. StrToInt,
3. StrToFloat,
4. FloatToStr.
Стоит отметить тот факт, что иногда без данных функций просто невозможно обойтись. Они дают возможность не целочисленные и целочисленные переменные типа Double, Integer, Real, Byte и так далее преобразовать в текст и наоборот, строку в число.
Строку в дату
Для того, чтобы преобразовать строку в дату Delphi, следует воспользоваться функцией VarToDateTime(). Для работы с датами в Делфи очень часто используется функция StrToDate(), которая преобразовывает непосредственно числа.
В последнее время помимо работы с Delphi, большой интерес вызывает администрирование linux.
Разница между строкой[80] и строкой в Delphi 7 и Delphi XE4
спросил
Изменено 6 лет, 1 месяц назад
Просмотрено 2к раз
Я переношу приложение delphi 7 на delphi XE4. В Delphi 7 некоторые переменные объявляются следующим образом:
переменная abc : строка[80];
При переносе этого кода я изменяю вышеприведенное объявление кода как
var abc : string;
Насколько я понимаю, строка[80] является антистрочной, а строка — юникодной. Итак, это правильный способ сделать это?
Я следую приведенной ниже ссылке из stackoverflow:
Преобразование Char в AnsiChar или WideChar (Delphi)
- delphi
- delphi-7
- delphi-xe4
7
Действительно, вы правы:
-
string[#]
являются подтипамиShortString
.
Максимум 255 символов (в зависимости от #), а кодировка не определена (т.е. на ваше усмотрение). -
строка
— это обычная строка, которая была однобайтной (теперь называемойAnsiString
) до Delphi 2007 и многобайтовой (теперь называемойUnicodeString
) в Delphi 2009.
До Delphi 2007 кодировка неопределенный. Начиная с Делфи 2009, какAnsiString
, так иUnicodeString
могут иметь кодировку.
Дополнительную справочную информацию можно найти в этих двух разделах документации Delphi:
- ShortString
- AnsiString
- UnicodeString
- Типы строк Delphi
- Юникод в RAD Studio
Отвечая на ваш вопрос о том, как вы должны заменить ShortString
:
Это полностью зависит от того, как вы использовали свой ShortString
в Delphi 7. В зависимости от использования существует несколько вариантов:
-
string
- массивов по
байт
-
AnsiString
Все зависит от того, какие данные вы храните, так что это первое, что вам нужно выяснить.
2
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
AddChar |
| Добавление символов слева от строки до определенной длины |
аддчарр |
| Добавлять символы в конец строки, пока она не достигнет определенной длины |
AnsiContainsStr |
| Проверяет, содержит ли строка заданную подстроку |
AnsiContainsText |
| Проверить, содержит ли строка определенную подстроку без учета регистра. |
AnsiEndsStr |
| Проверить, заканчивается ли строка определенной подстрокой |
AnsiEndsText |
| Проверить, заканчивается ли строка определенной подстрокой, без учета регистра. |
AnsiIndexStr |
| Поиск с учетом регистра строки в массиве строк. |
AnsiIndexText |
| Поиск без учета регистра строки в массиве строк. |
AnsiLeftStr |
| Копирует ряд символов, начиная слева строки |
AnsiMatchStr |
| Проверить, встречается ли строка в массиве строк, соблюдая регистр. |
AnsiMatchText |
| Проверить, встречается ли строка в массиве строк, без учета регистра. |
AnsiMidStr |
| Возвращает количество символов, скопированных из заданного места в строке |
AnsiProperCase |
| Pretty-Print a string: сделать строчными и заглавными первые буквы слов |
AnsiReplaceStr |
| Поиск и замена всех вхождений строки с учетом регистра. |
AnsiReplaceText |
| Поиск и замена всех вхождений строки без учета регистра. |
AnsiResemblesText |
| Проверить, похожи ли две строки друг на друга. |
АнсиРеверсестринг |
| Поменять местами буквы в строке. |
AnsiRightStr |
| Копирует ряд символов, начиная с правого края строки |
AnsiStartsStr |
| Проверить, начинается ли строка с заданной подстроки, с учетом регистра |
AnsiStartsText |
| Проверить, начинается ли строка с заданной подстроки, игнорируя регистр |
BinToHex |
| Преобразование двоичного буфера в шестнадцатеричную строку |
СодержитStr |
| Проверить, содержит ли один текст другой (с учетом регистра) |
Содержиттекст |
| Проверить, содержит ли один текст другой (без учета регистра) |
Copy2Space |
| Возвращает все символы в строке до первого пробела (не входит). |
Copy2SpaceDel |
| Удаляет и возвращает все символы в строке до первого пробела (не входит). |
Copy2Symb |
| Возвращает все символы в строке до указанного символа (не включено). |
Copy2SymbDel |
| Удаляет и возвращает все символы в строке до указанного символа (не включено). |
Dec2Numb |
| Преобразование десятичного числа в строковое представление с использованием заданного основания. |
DecodeSoundexInt |
| Декодирует целочисленное представление кода soundex и возвращает исходный код soundex. |
DecodeSoundexWord |
| Декодирует представление кода soundex размером в слово и возвращает исходный код soundex. |
ДелЧарс |
| Удалить все вхождения данного символа из строки. |
ДелСпейс |
| Удалить все вхождения пробела из строки. |
DelSpace1 |
| Сокращает последовательность символов пробела до 1 символа пробела. |
Двойная строка |
| Создает и объединяет N копий строки |
EndsStr |
| Проверить, заканчивается ли одна строка другой |
EndsText |
| Проверить, заканчивается ли один текст другим |
Экстракт с разделителями |
| Извлечь из строки N-ю часть с разделителями. |
ExtractSubstr |
| Извлечь слово из строки, начиная с заданной позиции в строке. |
ЭкстрактВорд |
| Извлечь N-е слово из строки. |
ЭкстрактВордПос |
| Извлечь слово из строки и вернуть позицию, в которой оно находилось в строке. |
FindMatchesBoyerMooreCaseInSensitive |
| Поиск совпадений строки без учета регистра с использованием алгоритма Бойера-Мура |
FindMatchesBoyerMooreCaseSensitive |
| Поиск совпадений строки с учетом регистра с использованием алгоритма Бойера-Мура |
FindPart |
| Поиск подстроки в строке с использованием подстановочных знаков. |
Жеткмдлайнарг |
| Возвращает аргумент командной строки после указанного переключателя. |
Hex2Dec |
| Преобразует шестнадцатеричную строку в десятичное значение |
Hex2Dec64 |
| Преобразование шестнадцатеричного значения в 64-битное целое число |
HexToBin |
| Преобразование шестнадцатеричной строки в двоичный буфер |
Если Тогда |
| Возвращает одну из двух строк в зависимости от логического выражения |
in(string,):Boolean |
| Проверить наличие строки в массиве строк |
in(UnicodeString,):Boolean |
| Проверить наличие строки в массиве строк |
ИндексСтр |
| Поиск с учетом регистра строки в массиве строк. |
IndexText |
| Указатель текста в списке значений |
IntToBin |
| Преобразует целое число в двоичное строковое представление, вставляя пробелы в фиксированных местах. |
IntToRoman |
| Представление целого числа римскими цифрами |
IsEmptyStr |
| Проверить, является ли строка пустой, игнорируя пробельные символы |
Исдикий |
| Проверить, соответствует ли строка поисковому выражению с подстановочными знаками. |
ИсВордПрезент |
| Проверка наличия слова в строке. |
Левая БСтр |
| Копии Подсчет символов, начиная с левого края строки. |
Левая Улица |
| Копии Подсчет символов, начиная с левого края строки. |
MatchStr |
| Проверить, встречается ли строка в массиве строк, соблюдая регистр. |
MatchText |
| Проверка наличия строки в списке значений |
MidBStr |
| Копирует ряд символов, начиная с заданной позиции в строке. |
Мидстр |
| Копирует ряд символов, начиная с заданной позиции в строке. |
NaturalCompareText |
| Сравните с использованием натурального сорта |
НПос |
| Возвращает позицию N-го вхождения подстроки в строку. |
Numb2Dec |
| Преобразует строковое представление числа в его числовое значение с заданным основанием. |
Numb2USA |
| Вставьте разделитель тысяч. |
PadCenter |
| Растяните струну до определенной длины, чтобы струна располагалась по центру. |
Левая накладка |
| Добавляйте пробелы слева от строки, пока не будет достигнута определенная длина. |
PadRight |
| Добавляйте пробелы справа от строки, пока не будет достигнута определенная длина. |
Почтовый ящик |
| Поиск появления символа в строке, начиная с определенной позиции. |
PosSet |
| Возвращает позицию в строке любого символа из набора символов |
PosSetEx |
| Возвращает позицию в строке любого символа из набора символов, начиная с определенной позиции |
RandomFrom |
| Выберите случайную строку из массива строк. |
Удалить ведущие символы |
| Удалить все начальные символы в наборе из строки |
RemovePadChars |
| Удалить все конечные или начальные символы в наборе из строки |
УдалитьTrailingChars |
| Удаление всех завершающих символов в наборе из строки |
ЗаменитьСтр |
| Замена строк с учетом регистра |
Заменить текст |
| Замена строк без учета регистра |
Напоминает Текст |
| Проверить, похожи ли две строки друг на друга |
Реверсстринг |
| Обратные символы в строке |
RightBStr |
| Скопировать заданное количество символов (байтов), считая справа от строки. |
Правая Улица |
| Скопировать заданное количество символов, считая справа в строке. |
RomanToInt |
| Преобразование строки с римским числом в десятичное значение. |
РоманТоИнтДеф |
| Преобразование римской цифры в целое число |
РПос |
| Найти последнее вхождение подстроки или символа в строку |
RPosEx |
| Найти последнюю подстроку или символ в строке, начиная с определенной позиции |
SearchBuf |
| Поиск в буфере определенной строки. |
Саундекс |
| Вычисление звукового выражения строки |
SoundexCompare |
| Сравните значения soundex для 2 строк. |
SoundExInt |
| Значение Soundex в виде целого числа. |
Саундекспрок |
| Реализация AnsiResemblesText по умолчанию. |
SoundexSimilar |
| Проверить, имеют ли 2 строки одинаковые значения soundex |
СаундексВорд |
| Вычислить значение soundex размером в слово |
Разделенная командная строка | ||
Разделенная строка |
| Разделить строку на слова |
StartsStr |
| Проверить, начинается ли одна строка с другой |
StartsText |
| Проверить, начинается ли один текст с другого |
Замена строки |
| Оптимизированный алгоритм поиска и замены |
Замена строк |
| Заменить вхождения набора строк другим набором строк |
Материал Строка |
| Заменить часть строки другой строкой. |
Tab2Space |
| Преобразование символов табуляции в количество пробелов |
TrimLeftSet |
| Удаление всех начальных символов в наборе из строки и возврат результата |
TrimRightSet |
| Удаляет все завершающие символы в наборе из строки и возвращает результат |
Набор триммеров |
| Удаляет любые начальные или конечные символы в наборе из строки и возвращает результат |
Триромантоинт |
| Попробуйте преобразовать римскую цифру в целое число. |
Количество слов |
| Подсчет количества слов в строке. |
WordPosition |
| Поиск позиции N-го слова в строке. |