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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2012, 14:05   #11
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

ок, определили и чего? зачем определяли?
=master= вне форума Ответить с цитированием
Старый 29.04.2012, 15:14   #12
WhiskasTM
Подтвердите свой е-майл
 
Регистрация: 11.04.2012
Сообщений: 85
По умолчанию

Во придумал:

1.txt:
Цитата:
211.111.111.111 test.com #blahblahblah
hsadkjasdhk hasdhakj 123123.123123 $333334
xxxxx3 111111.11.1.1 yhyhyhyhy.123123 $hhhhhhhh
ololol mwuhah
Код:
uses
 StrUtils;

procedure TForm1.Button1Click(Sender: TObject);
var
f:TextFile;
s:string;
SL:TStringList;
i,posdeciminator,lastpos,Column,Row:integer;
begin
 SL:=TStringList.Create;
 SL.LoadFromFile('D:\1.txt');

for i := 0 to SL.Count-1 do
begin
Column:=0;
posdeciminator:=-1;
lastpos:=0;

while posdeciminator <> 0 do
begin
 posdeciminator:=PosEx(' ',SL[i],lastpos+1);
 if posdeciminator = 0 then
  begin
    inc(Column,1);
    StringGrid1.Cells[Column,i]:=Copy(SL[i],lastpos,length(SL[i])-lastpos+1);
  end;
 inc(Column,1);
 StringGrid1.Cells[Column,i]:=Copy(SL[i],lastpos,posdeciminator-lastpos);
 lastpos:=posdeciminator;
end;

end;
end;

end.
Правда это рабочее если полей хватает в стринггриде, иначе тут посложнее должно быть с RowCount+1 и т.п.
WhiskasTM вне форума Ответить с цитированием
Старый 29.04.2012, 15:20   #13
Lier
Пользователь
 
Регистрация: 21.04.2012
Сообщений: 18
По умолчанию

WhiskasTM, спасибо, но пока я разберусь с тем как это работает)))
Вот немного изменил свой код
Код:
Var
    a : array[0..MAX_PATH] of char;
    i:integer;
    s:string;
    f:boolean;
    t:textfile;
begin
GetWindowsDirectory(a, sizeof(a));
Dir:=StrPas(a)+'\System32\drivers\etc\hosts';
assignfile(t,Dir);
reset(t);
HS.Cols[0].LoadFromFile(Dir);
for i:=HS.RowCount-1 downto 1 do
HS.Rows[i].Text:=HS.Rows[i-1].Text ;
HS.Cells[0,0]:='IP';
HS.Cells[1,0]:='Сайт';
HS.Cells[2,0]:='Комментарий';
for i:=1 to HS.RowCount-1 do
 begin
  HS.Rows[i].Delimiter:=' ';
  HS.Rows[i].DelimitedText:=HS.Cells[0,i];
 end;
end;
Так уже лучше или всё ещё...?
Lier вне форума Ответить с цитированием
Старый 29.04.2012, 15:42   #14
Lier
Пользователь
 
Регистрация: 21.04.2012
Сообщений: 18
По умолчанию

И ещё, код раньше работал, теперь же нет. Запись из 3edit'ов stringgrid
Код:
procedure TForm1.Button1Click(Sender: TObject);
var n: longint;
begin
HS.RowCount:=HS.RowCount+1;
HS.Rows[HS.RowCount-1].Clear;
n:=HS.RowCount-1; 
HS.Cells[0,n]:=Edit1.Text;
HS.Cells[1,n]:=Edit2.Text;
HS.Cells[2,n]:=Edit3.Text;
end;
В чем проблема?
Lier вне форума Ответить с цитированием
Старый 29.04.2012, 15:47   #15
WhiskasTM
Подтвердите свой е-майл
 
Регистрация: 11.04.2012
Сообщений: 85
По умолчанию

Цитата:
Сообщение от Lier Посмотреть сообщение
И ещё, код раньше работал, теперь же нет. Запись из 3edit'ов stringgrid
В чем проблема?
Все там 100% рабочее:
WhiskasTM вне форума Ответить с цитированием
Старый 29.04.2012, 15:59   #16
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

Цитата:
или всё ещё...?
Всё еще...
Код:
assignfile(t,Dir);
reset(t);
вот это для чего?
=master= вне форума Ответить с цитированием
Старый 29.04.2012, 16:09   #17
ProgMaster
Новичок
Джуниор
 
Аватар для ProgMaster
 
Регистрация: 13.11.2011
Сообщений: 82
Радость

Код:
procedure ReadTxtToSG(TxtFile: String);
var
F: File;
C: Char;
Str: String;
I,Y: Integer;
begin
I:=0;
Y:=0;
Str:='';
AssignFile(F,TxtFile);
Reset(F);
while not Eof(F)
begin
    Read(F,C);
    if C <> #20 then Str = Str +C else 
    begin
        StringGrid1.Cells[I,Y]:=Str;
        Str:='';
        Inc(Y);
        if Y = 3 then 
        begin
            Y = 0;
            Inc(I);
        end;
     end;
end;
ProgMaster вне форума Ответить с цитированием
Старый 29.04.2012, 16:18   #18
antikiler_
 
Регистрация: 14.01.2012
Сообщений: 9
По умолчанию

Код:
var

  i, j, w : integer;
  ts: TStringList;
  od: TOpenDialog;
begin
  ts := TStringList.Create;
  od := TOpenDialog.Create(nil);
  ts.Delimiter := ' ';                    // задаем разделитель пробел
  if od.Execute then
    ts.LoadFromFile(od.FileName);
  StringGrid1.RowCount := ts.Count + 1;   // устанавливаем количество сток в таблице
  ts.DelimitedText := ts.Text;
  w := 0;
  try
    for i := 0 to (ts.Count div 3) - 1 do      // тройка - количество столбцов для заполнения
      for j := 1 to 3 do
        begin
          StringGrid1.Cells[j, i + 1] := ts.Strings[w];
          inc(w);
        end;
  finally
    od.Free;
    ts.Free
  end;
end;
antikiler_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
открытие файла digital-stream Общие вопросы Delphi 3 09.07.2011 23:07
открытие файла vo_sa Общие вопросы C/C++ 7 25.06.2009 11:23
Открытие файла и создание графика на основе чисел из файла Simon..14 Общие вопросы C/C++ 8 09.06.2009 10:18
Открытие файла Veiron Общие вопросы Delphi 2 27.02.2008 03:12
Открытие файла KillbrumX Помощь студентам 5 02.02.2008 20:50