Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

запись массива в поток [D7]


Страницы:   1 2 3

Vladimir200000 ©   (2010-02-06 01:51:00) 

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


Vladimir200000   (2010-02-07 16:05:00) [21]

Точное, при запуске выходит сообщение об ошибки в котором в столбик указаны значения из файла и в конце написано "is not a valid integer value"
Почему то весь файл вписываются в переменную f за один цикл, а потом усе..


Anatoly Podgoretsky   (2010-02-07 15:38:00) [22]

Удалено модератором


Anatoly Podgoretsky   (2010-02-07 15:32:00) [23]

> Vladimir200000  (07.02.2010 15:17:21)  [21]

Это точное сообщение?
Только если длина <> 4


Vladimir200000   (2010-02-07 15:17:00) [24]

Вот код: Выходит сообщение, что записанные числа не integer.
Получается, что когда я читаю числа из потока, то они считываются как одно целое что ли?

unit TEST1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ToolWin, ComCtrls, ActnMan, ActnCtrls, Grids;

 const
 MaxElements = 10;

type
 TForm1 = class(TForm)
   StringGrid2: TStringGrid;
   LoadButton1: TButton;
   procedure LoadButton1Click(Sender: TObject);

 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.LoadButton1Click(Sender: TObject);
var
 Length, i:integer;
 p2: TStream;
 k: array[1..MaxElements] of integer;
 F: string;
  begin
   p2 := TFileStream.Create('D:\тест\file34.txt', fmopenread);
    try
     Length := p2.Size;
     SetLength(F, length);
      for I := 1 to MaxElements do begin
       p2.Read(PChar(F)^, length);
       k[i] := strtoint(F);
      end;
    finally
   end;
  p2.Free;
 for I := 1 to MaxElements do
StringGrid2.Cells[1, i] := IntToStr(k[i]);
end;

end.


Vladimir200000   (2010-02-07 15:14:00) [25]

Вот код.


Плохиш   (2010-02-07 14:14:00) [26]


> Vladimir200000 ©   (07.02.10 10:28) [14]

Чем же тебе помочь, немощный?


Anatoly Podgoretsky   (2010-02-07 11:29:00) [27]


> если сам смог откомпилировать, то не задавал бы тут вопросов

Сдавать Дельфи в аренду запрещено лицензионным соглашением.


sniknik   (2010-02-07 10:57:00) [28]

и в чем проблема? компилятор сломался? или "компилять" отказывается? ну так поищи другой компилятор/код, в этом невооруженным взглядом видны ошибки (например первая неопределенная константа MaxElements, тип самого массива под вопросом исходя из того как с ним дальше обращаются...).

а вообще, ссылка из [1], там все написано как/что спрашивать.


Vladimir200000   (2010-02-07 10:36:00) [29]

если сам смог откомпилировать, то не задавал бы тут вопросов


sniknik   (2010-02-07 10:33:00) [30]

> не откомпилированный, поэтому и спрашиваю данный вопрос.
ну так откомпилируй и вопрос "отпадет"...

> для этого есть специальные форумы...
мы в курсе. здесь лучше, и начинают как бы всегда авторы...


Vladimir200000   (2010-02-07 10:28:00) [31]

Вот код (не откомпилированный, поэтому и спрашиваю данный вопрос.
Прошу отвечать по сути, а если кому то хочется потрепаться, для этого есть специальные форумы...

procedure TForm1.LoadButton1Click(Sender: TObject);
var
 i:integer;
 p2: TStream;
 k: array[1..MaxElements] of integer;
 Length: Integer;
  begin
   p2 := TFileStream.Create('D:\тест\file34.txt', fmopenread);
    try
     Length := p2.Size;
     SetLength(k[i],length);
     p2.Read(k[i],p2.Size);// насколько я понимаю в этой строке идет чтение в массив
      for I := 1 to 10 do
         StringGrid2.Cells[1, i] := IntToStr(k[i]);
   finally
     p2.Free;
    end;


KilkennyCat   (2010-02-06 18:10:00) [32]


> turbouser ©   (06.02.10 13:10) [8]
>
> Не факт :) А вдруг в поток не интегеры записаны, а их строковое
> представление :)


в конечном итоге все - лишь нолики и единички (в двоичной системе)


turbouser   (2010-02-06 13:50:00) [33]


> Vladimir200000 ©   (06.02.10 01:51)  

Володька, давай подробности - какой поток, какие числа и как делал :)


Плохиш   (2010-02-06 13:47:00) [34]


> Ганя   (06.02.10 12:28) [7]

Что-то я не заметил твоих попыток аффтару помочь, так скулишь на отвечающих.


Плохиш   (2010-02-06 13:44:00) [35]


> Если человек не знает вообще ничего, начал обучение час
> назад, то

в конференции ему ещё делать совершенно нечего. Сначала надо основы прочитать.


sniknik   (2010-02-06 13:11:00) [36]

> какая форма обучения лучше - от частного к общему или наоборот.
есть единственная форма обучения... это когда один учит/пишет книгу/объясняет, а многие внимают/читают/разбираются самостоятельно.
а когда наоборот одному многие втолковывают/натаскивают/и пишут под него трактаты, так чтобы понял конкретный индивид, это не обучение, это репетиторство, и оно бесплатным не бывает.

> и он просит помощи по одной из форм
в том то и дело, не помощи он просит, а чтобы делали за него. выглядит во всяком случае так.

> а отвечающие априори предполагают, что правильная форма - как раз противоположная.
считаешь что не правы? зачем слова? просто дай ему этот код "для примера", ведь сложностей конкретно с ним никаких, достаточно посмотреть на методы потока.
а я лично пальцем не пошевельну, если не вижу в вопросе попытки разобраться, хоть какого то понимания, а не просто тупо скопированного задания из методички (которое, без контекста, темы/того что говорил преподаватель, просто набор слов). а вот потрепаться на эту тему можно, развлечение как никак...


turbouser   (2010-02-06 13:10:00) [37]


> KilkennyCat ©   (06.02.10 12:14) [6]


> и что это никоим образом не влияет на работу с потоком.

Не факт :) А вдруг в поток не интегеры записаны, а их строковое представление :)
Это две разные разницы, однако :)


Ганя   (2010-02-06 12:28:00) [38]


> KilkennyCat ©   (06.02.10 12:14) [6]


Вопрос сводится к тому, какая форма обучения лучше - от частного к общему или наоборот. Если цель обучения неизвестна, ответа на этот вопрос быть не может. Причем автору цель обучения как раз известна, и он просит помощи по одной из форм, а отвечающие априори предполагают, что правильная форма - как раз противоположная.


KilkennyCat   (2010-02-06 12:14:00) [39]


> Если человек не знает вообще ничего, начал обучение час
> назад

то код для "разобраться" ему не поможет. Это поможет лишь более-менее состоявшемуся программисту.
К тому же потоки - это не час назад.
И в любом случае, ничто не избавляет от думания над вопросом и правильной его формулировкой. Программист "час назад" уже должен соображать, как обозвать целые положительные и отрицательные числа, и что это никоим образом не влияет на работу с потоком.
Отсюда вывод: 99.9 % вероятности, что это - даденная ему задача, где одним из условий является определения типа данных, и как следствие, нормального ответа здесь получить вероятность оставшиеся 0.1 %


Ганя   (2010-02-06 12:07:00) [40]


> sniknik ©   (06.02.10 10:33) [4]



> и желании этот код не написать, пусть с помощью, а получить


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


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо