Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.05.2009, 21:43
Надеждочка Надеждочка вне форума
Прохожий
 
Регистрация: 25.05.2009
Сообщения: 2
Репутация: 10
По умолчанию Чтение из файла заданной строки

вывести из текстового файла в поле memo строку с номером N
Ответить с цитированием
  #2  
Старый 25.05.2009, 21:52
Drozh Drozh вне форума
Активный
 
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
По умолчанию

Банальный спсоб
Код:
var
 AFile: TStrings;
begin
 AFile := TStringList.Create;
 AFile.LoadFromFile('Путь к файлу');

 Memo1.Lines.Add(AFile.Strings[N]);

 AFile.Free;
end;
В данном случае строки нумеруются от 0, т.е. AFile.Strings[0] - получаешь первую строку
Ответить с цитированием
  #3  
Старый 26.05.2009, 00:11
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,020
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ага, а если файл 2Гб?
Тут лучше честно прочитать нужное кол-во строк через readln.

Код:
function ReadStringN(AFileName :String; N :Integer) : String;
var
  F : TextFile;
  I : Integer;
begin
  Result := '';
  AssignFile(F,AFileName);
  Reset(F);
  I := 1;
  While (I <= N) And (Not Eof(F)) Do
     ReadLn(F,Result);
  CloseFile(F);
end;
Ответить с цитированием
  #4  
Старый 26.05.2009, 12:02
Надеждочка Надеждочка вне форума
Прохожий
 
Регистрация: 25.05.2009
Сообщения: 2
Репутация: 10
По умолчанию

Спасибо) Помогло
Ответить с цитированием
  #5  
Старый 27.05.2009, 21:19
Микрик Микрик вне форума
Прохожий
 
Регистрация: 27.05.2009
Сообщения: 3
Репутация: 10
По умолчанию

А если нужно из строки определенное слово ?
или к примеру первая буква слова находится в строке 10-ой по счёту , нужно вытянуть слово , как это зделать ?
Ответить с цитированием
  #6  
Старый 27.05.2009, 21:39
roamer roamer вне форума
Активный
 
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
По умолчанию

Насчет слова из строки можно так :

Код:
function Get_CountWords_In_String(UnChar : TSetChars; Sx : string) : integer;
//Определить кол-во слов в строке
//UnChar - множество символов - разделителей слов
var
  InWord : byte;
  i : integer;
begin
  Result:=0;
  if length(Sx)>0 then begin
     InWord := 0;
     i:=0;
     while i<length(Sx) do
      begin
       i:=i+1;
       if not (Sx[i] in UnChar) then begin //этот символ - НЕ разделитель
          if InWord<=0 then Result:=Result+1; //переход на начало слова
          InWord:=1; //Мы внутри слова
       end
       else begin //этот символ - разделитель
          InWord:=0; //Мы снаружи слова
       end;
     end;
  end;
end;



function Get_Word_From_String(UnChar : TSetChars; Sx : string; NumWord : integer) : string;
//Получить слово из строки по номеру
//UnChar - множество символов - разделителей слов
//NumWord - номер слова
var
  InWord    : byte;
  NumWordCur, i : integer;
begin
  Result:='';
  if length(Sx)>0 then begin
     if NumWord>0 then begin
       InWord := 0;
       NumWordCur:=0;
       i:=0;
       while i<length(Sx) do
        begin
         i:=i+1;
         if not (Sx[i] in UnChar) then begin //этот символ - НЕ разделитель
            if InWord<=0 then NumWordCur:=NumWordCur+1; //мы - на начале слова
            InWord:=1; //Мы внутри слова
            if NumWordCur=NumWord then begin //Это - наше слово
               Result:=Result+Sx[i];   //и мы его выдираем из строки
            end;
         end
         else begin  //этот символ - разделитель
            InWord:=0; //Мы снаружи слова
            if NumWordCur=NumWord then begin //Это было - наше слово
               i:=length(Sx)+1; //поэтому, выходим из цикла и функции
            end;
         end;
       end;
     end;
  end;
end;


Ответить с цитированием
Этот пользователь сказал Спасибо roamer за это полезное сообщение:
roleli (13.02.2014)
  #7  
Старый 28.05.2009, 21:10
Микрик Микрик вне форума
Прохожий
 
Регистрация: 27.05.2009
Сообщения: 3
Репутация: 10
По умолчанию

Цитата:
Сообщение от Drozh
Банальный спсоб
Код:
var
 AFile: TStrings;
begin
 AFile := TStringList.Create;
 AFile.LoadFromFile('Путь к файлу');

 Memo1.Lines.Add(AFile.Strings[N]);

 AFile.Free;
end;
В данном случае строки нумеруются от 0, т.е. AFile.Strings[0] - получаешь первую строку

А как сделать так что бы выводило данные до определенного слова , например что бы выводило все до строки с текстом "text", слово "text" не выводить на экран . а вывести тоьлко то что до него и начиная со строки номер 50 например.
Благодарю заранее
Ответить с цитированием
  #8  
Старый 01.06.2009, 23:25
Микрик Микрик вне форума
Прохожий
 
Регистрация: 27.05.2009
Сообщения: 3
Репутация: 10
По умолчанию

Помогите пожалуйста !
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:56.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter