Работа со строками
Code: |
function UpCaseRus(ch: Char): Char; asm CMP AL,'a' JB @@exit CMP AL,'z' JA @@Rus SUB AL,'a' - 'A' RET @@Rus: CMP AL,'я' JA @@Exit CMP AL,'а' JB @@yo SUB AL,'я' - 'Я' RET @@yo: CMP AL,'?' JNE @@exit MOV AL,'?' @@exit: end; |
- Подробности
- Родительская категория: Работа со строками
- Категория: Форматирование строк
Code: |
function LoCaseRus( ch : Char ) : Char; {Перевод символа в нижний регистр для русского алфавита} asm CMP AL,'A' JB @@exit CMP AL,'Z' JA @@Rus ADD AL,'a' - 'A' RET @@Rus: CMP AL,'Я' JA @@Exit CMP AL,'А' JB @@yo ADD AL,'я' - 'Я' RET @@yo: CMP AL,'?' JNE @@exit MOV AL,'?' @@exit: end; |
- Подробности
- Родительская категория: Работа со строками
- Категория: Форматирование строк
Code: |
{ **** UBPFD *********** by delphibase.endimus**** >> Примеры форматирования строк с использованием API-функции wvsprintf
Примеры показывают приемы использования функции wvsprintf в Delphi для форматирования строк. Эта функция входит в состав Windows API (реализована в user32.dll), поэтому не требует подключения модуля SysUtils по сравнению с аналогичной функцией Format.
Зависимости: Windows Автор: Внук, Zhigalin @ poria.ru, ICQ:60571446, Самара Copyright: Внук
***************************************************** }
// Пример использования функции wvsprintf с двумя параметрами разного типа
function WinFormat(out TargetString: AnsiString): Boolean; const FormatStr = 'String Parameter:"%s", Number Parameter:%05d'; var StrParam: AnsiString; NumberParam, FormatResult: Integer; ParamArray: array[0..1] of Pointer; begin NumberParam := 105; // Задаем значение первого параметра StrParam := 'Hello'; // Задаем значение второго параметра SetLength(TargetString, 50); // Должно быть достаточно места для результата. // Без этой строки работать не будет ParamArray[0] := @StrParam[1]; ParamArray[1] := Pointer(NumberParam); FormatResult := wvsprintf(PChar(TargetString), FormatStr, PChar(@ParamArray)); if FormatResult < Length(FormatStr) then// В случае ошибки значение функции // меньше длины шаблонной строки begin TargetString := ''; Result := False; end else result := True; end;
// Пример использования функции wvsprintf с одним параметром
function SimpleWinFormat(out TargetString: AnsiString): Boolean; const FormatStr = 'Number Parameter:%05d'; var NumberParam, FormatResult: Integer; begin NumberParam := 112; SetLength(TargetString, 50); // Должно быть достаточно места для результата. // Без этой строки работать не будет FormatResult := wvsprintf(PChar(TargetString), FormatStr, PChar(@NumberParam)); if FormatResult < Length(FormatStr) then// В случае ошибки значение функции // меньше длины шаблонной строки begin TargetString := ''; Result := False; end else result := True; end; Пример использования:
uses Dialogs, ...; ... var S: AnsiString; ... begin ... if WinFormat(S) then ShowMessage(S) else ShowMessage('An error has been occured!'); if SimpleWinFormat(S) then ShowMessage(S) else ShowMessage('An error has been occured!'); ... end; ... |
- Подробности
- Родительская категория: Работа со строками
- Категория: Форматирование строк
Code: |
{ **** UBPFD *********** by delphibase.endimus **** >> Повтор строки заданное количество раз
Input - строка для повторения Rep - количество повторений
Строка на выходе это входная строка повторенная Rep раз.
Зависимости: Стандартные модули Автор: Ru, DiVo_Ru @ rambler.ru, Одесса Copyright: DiVo 2002 creator Ru (по мотивам функции Str из Word Basic) ***************************************************** }
function MulStr(Input: string; Rep: integer): string; var i: integer; begin for i := 0to Rep - 1do result := result + Input; end; Пример использования:
s1 := 'Привет'; s := MulStr(s1, 3);
// результат: s := 'ПриветПриветПривет'; |
- Подробности
- Родительская категория: Работа со строками
- Категория: Форматирование строк
Code: |
{ **** UBPFD *********** by delphibase.endimus **** >> удаление лишних пробелов в строке
удаляет из строки лишние пробелы без использования всяких указателей и т.д.
Зависимости: стандартные модули Автор: Артем, boss1999 @ mail.ru, москва Copyright: собственное описание (Артем)
***************************************************** }
{процедура удаления лишних пробелов в строке (см. function Sha_SpaceCompress)} var c, i: integer; stt, st, st1: string; begin c := 0; st := edit1.Text;
for i := 1to Length(st) do begin
stt := copy(st, i, 1); if (stt = ' ') and (c >= 1) then begin st1 := st1; c := c + 1; end elseif (stt = ' ') and (c = 0) then begin c := c + 1; st1 := st1 + stt; end elseif (stt <> ' ') then begin c := 0; st1 := st1 + stt; end end;
edit2.text := st1; end; |
Code: |
Function DeleteUselessSpaces(s:String):string; {©Drkb v.3(2007): www. drkb .ru, ®Vit (Vitaly Nevzorov) - nevzorov @ yahoo.com} begin Repeat Result:=s; s:=StringReplace(Result,' ',' ',[rfReplaceAll]); //заменяем все двойные пробелы на одинарные Until Result=s; //повторяем до тех пор пока есть двойные пробелы end; |
- Подробности
- Родительская категория: Работа со строками
- Категория: Форматирование строк
Страница 3 из 21