тип string в Delphi 7

Вопросы по нескольким пакетам сразу, или вопросы, которые непонятно к какой ГИС отнести
Ответить
Аватара пользователя
Шаки
Активный участник
Сообщения: 187
Зарегистрирован: 02 июл 2008, 11:57
Репутация: 1
Контактная информация:

тип string в Delphi 7

Сообщение Шаки » 15 окт 2008, 11:40

Наверное я неправильно выбрала раздел, но всё же... Подскажите пожалуйста! Проблема в том, что я в Delphi 7 пытаюсь в переменную типа string передать строку которая весит 1 Мб, а он (редиска) мне её обрезает до 10 Кб .Мне кажется, что я где-то читала, что в Delphi 7 под тип string память выделяется динамически и ограничена только возможностью компьютера. Что мне делать? Может как то где-то можно расширить этот тип? :(

Аватара пользователя
Шаки
Активный участник
Сообщения: 187
Зарегистрирован: 02 июл 2008, 11:57
Репутация: 1
Контактная информация:

Re: тип string в Delphi 7

Сообщение Шаки » 15 окт 2008, 22:51

Как всегда всем спасибо, я свою горе строку заменила на массив символов :(

AndreyL
Завсегдатай
Сообщения: 483
Зарегистрирован: 17 авг 2006, 14:04
Репутация: 0
Откуда: Новосибирск

Re: тип string в Delphi 7

Сообщение AndreyL » 21 окт 2008, 13:17

Читаем справку Дельфи по строковым типам:
Type : Maximum length : Memory required
ShortString : 255 characters : 2 to 256 bytes
AnsiString : ~2^31 characters : 4 bytes to 2GB
WideString : ~2^30 characters : 4 bytes to 2GB

Аватара пользователя
Шаки
Активный участник
Сообщения: 187
Зарегистрирован: 02 июл 2008, 11:57
Репутация: 1
Контактная информация:

Re: тип string в Delphi 7

Сообщение Шаки » 21 окт 2008, 13:27

Класс! Я может и глупа, но справку читала и объявляла строку как WideString, но он всё равно её режет :?

Аватара пользователя
Шаки
Активный участник
Сообщения: 187
Зарегистрирован: 02 июл 2008, 11:57
Репутация: 1
Контактная информация:

Re: тип string в Delphi 7

Сообщение Шаки » 21 окт 2008, 13:29

Из-за этого и подумала может где надо что прописать или поменять, или директиву указать, вообщем не знаю :cry:

AndreyL
Завсегдатай
Сообщения: 483
Зарегистрирован: 17 авг 2006, 14:04
Репутация: 0
Откуда: Новосибирск

Re: тип string в Delphi 7

Сообщение AndreyL » 21 окт 2008, 14:49

Так. Кидаем на форму две кнопки, один TImage, и два диалога (TOpenPictureDialog и TSavePictureDialog)

Дальше так, и сравниваем рисунки (рисунки делаем побольше). Вот с палитрой в TImage у меня всегда проблема.

Код: Выделить всё

procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then begin
 Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
 if Image1.Picture.Bitmap.PixelFormat<>pf16bit then begin
  ShowMessage('Pixel format error   '+IntToStr(SizeOf(WideChar)));
  Image1.Picture.Bitmap.PixelFormat:=pf16bit;
  Image1.Picture.SaveToFile(OpenPictureDialog1.FileName);
 end;
end
end;

procedure TForm1.Button2Click(Sender: TObject);
var x, y :integer;
    sstt:WideString;
    i, j :integer;
begin
if SavePictureDialog1.Execute then begin
 y:=Image1.Picture.Bitmap.Height;
 x:=Image1.Picture.Bitmap.Width;
 setlength(sstt,x*y);
 for i:=1 to x do
  for j:=1 to y do begin
   sstt[i+(j-1)*x]:=WideChar(Round(Image1.Picture.Bitmap.Canvas.Pixels[i,j]));
  end;

 for i:=1 to x do
  for j:=1 to y do begin
   Image1.Picture.Bitmap.Canvas.Pixels[i,j]:=integer(sstt[i+(j-1)*x]);
  end;
 Image1.Picture.SaveToFile(SavePictureDialog1.FileName);
end;
end;

Аватара пользователя
Шаки
Активный участник
Сообщения: 187
Зарегистрирован: 02 июл 2008, 11:57
Репутация: 1
Контактная информация:

Re: тип string в Delphi 7

Сообщение Шаки » 21 окт 2008, 16:21

Большое спасибо :D . Да, я с Вами согласна, но... у меня был такой бок я не знаю длину строки и определить её не могу, когда пыталась - комп вис.Эта задача в прошлом, но всё равно приятно :)

Ответить

Вернуться в «Общий - ПО»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя