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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2011, 21:32   #1
juggle
Новичок
Джуниор
 
Регистрация: 05.02.2011
Сообщений: 3
Лампочка Разделить строку данных на отдельные числа

Народ, подскажите, пожалуйста, как мне реализовать заполнение данных из txt фаила в SrtingGrid.
Фаил заполнен так:
2 3 4
5 6 7
.....
Когда я пытаюсь подгрузить такой фаил, то у меня заполняется первый столбец данными всей строки, а мне надо чтобы каждое число в своей ячейке было. Что нужно поменять?
Код:
//DownLoad the file
procedure TForm1.Button2Click(Sender: TObject);
 
  var
  i,j,m,n:integer;
  s:string;
  input:TextFile;
 
begin
 
if OpenDialog1.Execute then
      begin
 
    AssignFile(input, OpenDialog1.FileName);
    Reset(input);
  
     m:=strtoint(Edit1.Text);
     n:=strtoint(Edit2.Text);
 
    for i := 0 to m - 1 do
    begin
       for j := 0 to n - 1 do
       begin
         Readln(input, s);
         StringGrid1.Cells[i,j] := s;
       end;
       Readln(input);
    end;
       CloseFile(input);
  end;
juggle вне форума Ответить с цитированием
Старый 05.02.2011, 21:45   #2
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

как минимум
Цитата:
StringGrid1.Cells[i,j] := s;
замени на
Код:
StringGrid1.Cells[i,j] := Copy(s,j*2,1); //j*2 на 100% не уверен, но вроди так
P.S. при условии что все числа будут однозначные
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 05.02.2011, 21:57   #3
juggle
Новичок
Джуниор
 
Регистрация: 05.02.2011
Сообщений: 3
По умолчанию

Заменено, но в этом случае у меня показывается 1 цифра в самой первой ячейке.
Если оставить просто j (без умножения на 2), по показываются 2 цифры - в верхней ячейку и ячейке под ней.
Нужно что-то еще придумать....
juggle вне форума Ответить с цитированием
Старый 05.02.2011, 22:54   #4
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

> Нужно что-то еще придумать


Куда уж дальше придумывать, кулибин, если все уже придумано до нас ?)

Штудируй TStringList как Отче Наш - там все уже "придумано".
mss вне форума Ответить с цитированием
Старый 05.02.2011, 22:55   #5
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  i,j,m,n:integer;
  s:string;
  input:TextFile;
begin
  if OpenDialog1.Execute then
  begin
    AssignFile(input, OpenDialog1.FileName);
    Reset(input);
    m:=strtoint(Edit1.Text);
    n:=strtoint(Edit2.Text);
    for i := 0 to m - 1 do
    begin
      Readln(input, s);
      for j := 0 to n - 1 do
      begin
        StringGrid1.Cells[j,i] := Copy(s,j*2+1,1);
      end;
    end;
    CloseFile(input);
  end;
end;
P.S.1. при условии что все числа будут однозначные
P.S.2. не надо 2 раза считывать с фаила
VirusN13

Последний раз редактировалось ArtGrek; 05.02.2011 в 22:57.
ArtGrek вне форума Ответить с цитированием
Старый 05.02.2011, 23:17   #6
juggle
Новичок
Джуниор
 
Регистрация: 05.02.2011
Сообщений: 3
Хорошо

Да, получилось!!! СПАСИБО ОГРОМНОЕ!!! Ты супер МОЗГ!
juggle вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на Си по разделению пятизначного числа на отдельные цифры wysotsky Помощь студентам 5 24.01.2011 23:51
Разбор целого числа на отдельные символы Crystallon Общие вопросы Delphi 4 12.09.2010 20:20
разделить строку на строки по разделителям kotkota Общие вопросы C/C++ 2 24.11.2009 21:20
как разделить строку даты student90 Общие вопросы Delphi 16 07.11.2008 10:01
Разделить строку на три столбца инженер Microsoft Office Excel 10 01.02.2008 04:58