Форум: "Основная";
Текущий архив: 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