Сделай сам: IE и Delphi – вместе веселее! | Программирование на Delphi и не только

Реклама на сайте

Отсюда и название приточно вытяжные установки или приточно вытяжные системы вентиляции.
Лучшие цены на фотоаппарат nikon d7000 в интернет-магазине

Почитайте!

Нас читают

Статьи о программировании и не только

Mail.Ru

Rambler's Top100

Programming Blogs - BlogCatalog Blog Directory

Сделай сам: IE и Delphi – вместе веселее!

28.01.2008 от Иван Ширко

Страница: 1 2 3 4 5 6

end;

Таким образом, чтобы узнать текущий адрес в IE, достаточно применить эти две функции:

FindEdit(h);
Adress := GetText(h);

Пункт 2: Увеличить (уменьшить) последнее число адреса на единицу
Здесь нам потребуется только умение оперировать со строками и знание основ арифметики.
//увеличение последнего числа в строке s
function IncURL(s:string): String;
const
  num = ['0'..'9'];
var
  i,  j, cnt: word;
  plus, ch: byte;
  code: integer;
  s1: string;
begin
  i := length(s);
  plus := 0;
  //ищем первую цифру с конца
  while (i>0) and not(s[i] in num) do
    dec(i);
  //если нашли…
  if (i<>0) then
  begin
    //считаем количество девяток, которыми кончается число
    cnt := 0;
    while (i>0) and (s[i]='9') do
    begin
      dec(i);
      inc(cnt);
    end;
    if (i=0) or not( s[i] in num) then
    begin
      ch := 0;
    {если число сплошь состоит из девяток, то мы должны первой цифрой сделать '1' и заменить все девятки на нули}
      if not(s[i] in num) then
        plus := 1;
    end else
      val(s[i], ch, code);
    inc(ch);
    str(ch, s1);
    if (cnt>0) then
      //заменяем последние девятки на нули
      for j := 1 to cnt do
        s1 := s1 + '0';
    //составляем итоговую строку
    s := copy(s, 1, i-1+plus)+s1+copy(s, i+cnt+1, length(s)-i-cnt);
  end;
  result := s;
end;

//уменьшение последнего числа в строке s
function DecURL(s:string):string;
const
  num = ['0'..'9'];
var
  i, j, cnt: word;
  minus, ch: byte;
  code: integer;
  s1: string;
begin
  i := length(s);
  minus := 0;
  //ищем последнюю цифру в строке
  while (i>0) and not (s[i] in num) do
    dec(i);
  if (i<>0) then
  begin
    cnt := 0;
    //считаем количество нулей
    while (i>0) and(s[i]='0') do
    begin
      dec(i);
      inc(cnt);
    end;
    if (i>0) and (s[i] in num) then
    begin
      val(s[i],ch,code);
      dec(ch);

Страница: 1 2 3 4 5 6

Рубрики: Delphi, Сделай сам |

Один комментарий

  1. Око пишет:

    Что-то так не выходит ничего

Оставить комментарий

Заметьте: Включена проверка комментариев. Нет смысла повторно отправлять комментарий.