Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 28.08.2009, 09:55   #21
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
посмотреть как ты туда пихаешь
Все на виду - пост №14
Цитата:
пустой стринглист тоже записывает один #13
Честно говоря это повергает меня в глубокое смятение.
Цитата:
пошагово пройтись
А смысл? Ведь в файл она пишется одной командой SaveToFile. Я ведь не могу увидеть содержимое, разве что на каждом шаге засовывать все в Memo...
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума
Старый 28.08.2009, 10:05   #22
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Что мешает удалять последнюю строку если она пуста?
Код:
if list[list.count-1]='' then list.delete(list.count-1);
Не не, последние символы переноса это не строка, они содеражатся в конце каждой строки стринглиста, поэтому в конце и происходит перенос. Нужно просто почистить справа (TrimRight вроде) последнюю строку, т.е. убрать служебные символы справа. Если не выйдет с тримом, убирать вручную, либо через Delete либо сократив длину строки с помощью SetLength.

з.ы. И да, там не один символ, а два по идее - #13#10 (0D0A).
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 28.08.2009 в 10:07.
mutabor вне форума
Старый 28.08.2009, 10:10   #23
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
там не один символ, а два
Честно говоря даже три (#13#10#27), но последний там должен быть.
Цитата:
TrimRight
Спасибо за прекрасную мысль, mutabor!Буду копать в этом направлении.

Честно говоря не совсем сработало:
Код:
TrimRight(List.Strings[List.Count-1]);
Если убрать -1 то получается ошибка, а так последние 1013 не удаляются.
И еще мне пришлось вместо +32-х в коде поставить +33, что-бы не допустить пробела, так как TrimRight удаляет и все пробелы. Но это не столь важно. Функция не справилась. Может как-то по другому записать?
Цитата:
Delete(List.Strings[List.Count-1],Length(List.Strings[List.Count-1]),1);
Выдает непонятную ошибку.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось Alex Cones; 28.08.2009 в 10:36.
Alex Cones вне форума
Старый 28.08.2009, 10:44   #24
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Почему еси не секрет?
Потому что перебор по ширине идет начиная с 0 до ширины битмапа -1, а там -1 нет, т.е. получается что перебор в ширину на 1 пиксель больше, что это за магический пиксель, не известно (наверное 0).

Честно говоря я в шоке сколько можно, ощущение что автор темы думать отказывается совершенно.

Код:
function Packing(Bit: TBitmap; Path: String): Boolean;
var
  f: TextFile;
  y, x, n: Integer;
  fc, cc: TColor;
  s, sr, sg, sb, h: String;
begin
  Result := False;
  if (Bit.Width = 0) or (Bit.Height = 0) then
    Exit;

  n := 0;
  cc := Bit.Canvas.Pixels[0, 0];

  for y := 0 to Bit.Height - 1 do
  begin
    for x := 0 to Bit.Width - 1 do
    begin
      fc := Bit.Canvas.Pixels[x, y];

      if (fc = cc) then
      begin
        inc(n);
      end else
      begin
        s := IntToHex(cc, 6);
        sr := Copy(s, 5, 2);
        sg := Copy(s, 3, 2);
        sb := Copy(s, 1, 2);
        h := h + Chr(N+32) + {N - количество}
          Chr(Round(StrToInt('$'+SB)/4+32)) +  {B - канал}
          Chr(Round(StrToInt('$'+SG)/4+32)) +  {G - канал}
          Chr(Round(StrToInt('$'+SR)/4+32));  {R - канал}
        n := 1;
        cc := fc;
      end;
    end;
  end;
 
  {$I-}
  AssignFile(f, Path);
  ReWrite(f);
  Write(f, h);
  CloseFile(f);
  {$I+}

  Result := True;
end;
Извените за сарказм, но изменился код просто до не узнаваемости Сложно было самому сделать такое ? Что-то еще не устраивает ?
BOBAH13 вне форума
Старый 28.08.2009, 10:51   #25
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
Что-то еще не устраивает ?
Да, не устраивает. Скорость записи 79-ти файлов и то, что все это записывается как одна строка без #10#13
2Модераторы:
Закрываейте тему, пока меня не обвинили в расизме!
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обход ошибки List index out of bounds (0) Яр|/||< (^_^) Общие вопросы Delphi 3 29.06.2009 12:45
Табулирование функции. Ошибка 'List index out of bounds(0)' Мэр Общие вопросы Delphi 2 03.06.2009 09:11
Ошибка List index out of bounds(0) при использовании запроса AdoQuery ArtInt БД в Delphi 14 15.04.2009 18:35
При запуске ComboBoxEx пишет List index out of bounds -1. dx+ Общие вопросы Delphi 6 12.06.2008 22:32