Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];

Вниз

можноли работать с текстовым файлом как с Tstrings?   Найти похожие ветки 

 
mikeee   (2005-02-03 15:27) [0]

Прошу помощи! У меня есть текстовый файл, можноли по аналогии с Tstrings написать что то вроде f.lines[4]:="qwe",(при этом не загружая файл в memo, listbox и.т.д.);
и второй вопрос: как мне узнать какой символ находится во второй строке, седьмой слева, в том же файле (аналогия с cells[7,2]).


 
Александр Иванов ©   (2005-02-03 15:29) [1]

Использовать TStringList.


 
mikeee   (2005-02-03 15:32) [2]

>>Использовать TStringList.
?????


 
Jay1982 ©   (2005-02-03 15:35) [3]


var
 var_txt: TStrings;

var_txt := TStringList.Create;
var_txt.LoadFromFile...;
var_txt.Free;


 
Fay ©   (2005-02-03 15:36) [4]

ReadLn


 
Александр Иванов ©   (2005-02-03 15:38) [5]

И что значат эти вопросы?

with TStringList.Create do
begin
  try
    LoadFromFile("c:\autoexec.bat");
    if Count>0 then
      ShowMessage(Strings[0]);
  finally
    Free;
  end;
end;


 
mikeee   (2005-02-03 15:42) [6]

не используя loadfromfile;

assignfile(f,"");
reset(f);
что находится в[4,7]? как узнать?
close(f);


 
Александр Иванов ©   (2005-02-03 15:44) [7]

mikeee   (03.02.05 15:42) [6]
Последовательно считывать методом ReadLn.


 
Jay1982 ©   (2005-02-03 15:44) [8]

Ну тогда разве-что в цикле читать до конца файли стринги и присваивать строкам ТСтринг


 
mikeee   (2005-02-03 15:50) [9]

а если я точно знаю номер сторки и символа, неужели мне придётся всё до него(символа) читать?


 
Jay1982 ©   (2005-02-03 15:54) [10]

mikeee   (03.02.05 15:50) [9]
Естественно!
Раз мёд так хочешь сразу и ложкой :)


 
Александр Иванов ©   (2005-02-03 15:55) [11]

mikeee   (03.02.05 15:50) [9]
Да, придется, и придется еще много литературы читать, если не знаете таких элементарных вещей.


 
Ega23 ©   (2005-02-03 15:59) [12]

а если я точно знаю номер сторки и символа, неужели мне придётся всё до него(символа) читать?

Можно сделать и по-другому.
1. Ищем самую длинную строку.
2. Объявляем array[1..Длина_Самой_Длинной_Строки, 1..Количество_Строк] of Char;
3. Заполняем данный массив (если длина i-й строки короче Длины_Самой_Длинной_Строки, то дополняем пробелами).
4. Получаем значение [7,2].

Только вот проблема в том, что это через жопу. А правильный ответ - см.[1]


 
Ega23 ©   (2005-02-03 15:59) [13]

а если я точно знаю номер сторки и символа, неужели мне придётся всё до него(символа) читать?

Можно сделать и по-другому.
1. Ищем самую длинную строку.
2. Объявляем array[1..Длина_Самой_Длинной_Строки, 1..Количество_Строк] of Char;
3. Заполняем данный массив (если длина i-й строки короче Длины_Самой_Длинной_Строки, то дополняем пробелами).
4. Получаем значение [7,2].

Только вот проблема в том, что это через жопу. А правильный ответ - см.[1]


 
mikeee   (2005-02-03 16:14) [14]

объясняю ситуацию: надо отсортировать двумерный массив по возрастанию, по убыванию, по спирали. Массив хранится в файле с N строками по M символов, числа имеют k знаков(при k=3- 123 463 005 итд) и записаны через пробел. 10<M<1000000,10<N<1000000.
и программа должна работать быстро! Если буду использовать loadfromfile , savetofile, то повремени не уложусь, а хочется чтобы всё было быстро и просто как со stringgridом (stringgrig.cells[34,54]);


 
Александр Иванов ©   (2005-02-03 16:16) [15]

(при k=3- 123 463 005 итд) - вот это не понял
И все таки уточните тип элементов массива.


 
Ega23 ©   (2005-02-03 16:19) [16]

и программа должна работать быстро! Если буду использовать loadfromfile , savetofile, то повремени не уложусь, а хочется чтобы всё было быстро и просто как со stringgridом (stringgrig.cells[34,54]);

Ошибаешься. Если ты его загрузишь в виртуальную память, там его отсортируешь, а потом запишешь обратно, то это будет ГОРАЗДО быстрее, чем сортировать непосредственно в файле.

Да и нельзя так с файлом работать.


 
mikeee   (2005-02-03 16:22) [17]

спасибо


 
Владислав ©   (2005-02-03 16:39) [18]

... в файле с N строками по M символов...
... 10<M<1000000,10<N<1000000...


Т.е. потенциально, размер файла может быть 930 ГБ?!
Такой лучше в память не грузить :о)


 
Ega23 ©   (2005-02-03 16:41) [19]

Такой лучше в память не грузить :о)

Боюсь, такой винт ещё надо постараться найти...


 
Александр Иванов ©   (2005-02-03 16:44) [20]

Ega23 ©   (03.02.05 16:41) [19]
Да, я таких не видел :).
А интересно, что за данные?


 
Ega23 ©   (2005-02-03 16:57) [21]

2 Александр Иванов ©   (03.02.05 16:44) [20]
А интересно, что за данные?

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


 
Alx2 ©   (2005-02-03 17:05) [22]

>mikeee   (03.02.05 16:14) [14]

Посмотри Memory Mapped Files. Имхо, для твоей задачи подходит оптимально


 
Anatoly Podgoretsky ©   (2005-02-03 23:05) [23]

Ega23 ©   (03.02.05 15:59) [12]
1. Ищем самую длинную строку.
2. Объявляем array[1..Длина_Самой_Длинной_Строки, 1..Количество_Строк] of Char;

Зачем? Нормальное определение array of array char, или array of string

Ega23 ©   (03.02.05 16:41) [19]
Нет проблем, особенно если знать что такое RAID 0

Владислав ©   (03.02.05 16:39) [18]
А мне кажется порядка 4 террабайт, если я правильно понял его "объяснение"



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.032 c
3-1106489170
Mamed
2005-01-23 17:06
2005.02.20
TQRCompositeReport


14-1107252149
Knight
2005-02-01 13:02
2005.02.20
Кто встречал... как можно быстро запустить заставку?


1-1107832655
ksu
2005-02-08 06:17
2005.02.20
как изменить ориентацию страницы


3-1106060831
Prohodil Mimo
2005-01-18 18:07
2005.02.20
Почему могут глючить триггера в IB6x?


10-1080597324
GanibalLector
2004-03-30 01:55
2005.02.20
MDAC и DCOM





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский