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

Вниз

Редактирование файла   Найти похожие ветки 

 
Dub   (2005-11-21 01:55) [0]

Подскажите, можно ли редактировать файл (изменять лишь определённые строки, а остальные оставлять без изменения), если можно, то как?


 
Fay ©   (2005-11-21 02:13) [1]

2 Dub   (21.11.05 1:55)
>> Подскажите, можно ли редактировать файл
Можно, доказано Notepad-ом.

>> если можно, то как?
Какого размера файл, равны ли длины строк?


 
Германн ©   (2005-11-21 02:20) [2]

2 Dub   (21.11.05 01:55)  
Пойми сначала разницу между файлом и документом.


> Fay ©   (21.11.05 02:13) [1]
>
> 2 Dub   (21.11.05 1:55)
> >> Подскажите, можно ли редактировать файл
> Можно, доказано Notepad-ом.
Имхо, не доказано. Поскольку блокнот редактирует именно "документ", а не файл.


 
Fay ©   (2005-11-21 02:27) [3]

2 Германн ©   (21.11.05 2:20) [2]
>> Пойми сначала разницу между файлом и документом.
Зачем? Можно ли поподробнее с этого места?

>> Поскольку блокнот редактирует именно "документ", а не файл.
... и с этого


 
Dub   (2005-11-21 02:32) [4]

Наверное всё таки файл(например, prim.txt - по размером небольшой). Длины строк могут быть разными. На сегодняшний момент, приходиться для  изменения одной строки в файле файле создавать новый документ, туда все копировать с соответствующим изменением строки (строк), а затем пересоздавать исходный файл, туда всё копировать обратно, а временный файл удалять. Вот такая вот муд..нь !!! Кто знает как, то подскажите.
А что касается NotePad"а, то раскажите как!


 
Fay ©   (2005-11-21 02:35) [5]

2 Dub   (21.11.05 2:32) [4]
1) Читаешь весь файл
2) Правишь как угодно
3) Записываешь вместо исходного

и никаких временных файлов - я так и не понял, зачем они тут


 
Dub   (2005-11-21 02:42) [6]

Читаю куда -  в память?
Открываю сначало для чтения, потом закрываю его, редактирую строки в памяти и открываю для записи - так?


 
Германн ©   (2005-11-21 02:44) [7]


> Fay ©   (21.11.05 02:27) [3]
>
> 2 Германн ©   (21.11.05 2:20) [2]
> >> Пойми сначала разницу между файлом и документом.
> Зачем? Можно ли поподробнее с этого места?
>
Можно. Начнём с того, что понятие "строка" существует в документе, но отсутствует в файле.

> >> Поскольку блокнот редактирует именно "документ", а не
> файл.
> ... и с этого

И тут пожалуйста. Блокнот загружает некий файл. В соответствии с неким алгоритмом представляет его в виде некоего документа. Редактирует именно сей документ, а не сам файл, а по команде "Записать" перезаписывает файл (в соответствии с тем алгоритмом, по которому он его читал ранее).
"И сколько раз твердили миру", что не стоит редактировать блокнотом файлы не являющимися "текстовыми | *.txt".


 
Dub   (2005-11-21 02:48) [8]

Штука в том, что требуется править не ручками, а программкой строки согласно некоторому критерию, а документ (насколько я понимаю) позволяет делать это только ручками. Уважаемый Герман, вот тут возникает следующий вопрос : причем здесь NotePad?


 
Fay ©   (2005-11-21 02:53) [9]

2 Dub   (21.11.05 2:42) [6]
Так.

2 Германн ©   (21.11.05 2:44) [7]
Я понял. Просто с самого начала не верил, что Вам придёт в голову объяснять такую ерунду. Только вот я не вижу (ни в каком виде) определения понятия "документа", т.о. можно было написать и "Пойми сначала разницу между файлом и друльбулеом".

>> И сколько раз твердили миру
Мне очевидно, что речи идёт именно о текстовом файле, т.к. упоминались строки.


 
Джо ©   (2005-11-21 02:53) [10]

2 Dub

var
 Lst: TStrings;
begin
 Lst := TStringList.Create;
 try
   Lst.LoadFromFile("d:\myfile.txt");
   //
   // правим построчно, как хотим
   //
   Lst.SaveToFile("d:\myfile.txt");
 finally
   Lst.Free
 end;
end;

И не нужно воротить непонятно что.


 
Fay ©   (2005-11-21 02:55) [11]

2 Джо ©   (21.11.05 2:53) [10]
>> var
>>  Lst: TStrings;

А почему не TStringList? Понимаю, что не смертельно, просто интересны мотивы.


 
Германн ©   (2005-11-21 02:58) [12]

2 Dub   (21.11.05 02:48) [8]
"Штука в том", что если файл не типизированный, то в общем случае нет иных способов, кроме как:
1. Считать весь файл куда-то.
2. Изменить что-то "согласно некоторому критерию".
3. Перезаписать в старый файл новое содержимое.


 
Джо ©   (2005-11-21 03:05) [13]


>  [11] Fay ©   (21.11.05 02:55)
> просто интересны мотивы.

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


 
Германн ©   (2005-11-21 03:08) [14]


> Fay ©   (21.11.05 02:53) [9]
>
> 2 Dub   (21.11.05 2:42) [6]
> Так.
>
> 2 Германн ©   (21.11.05 2:44) [7]
> Я понял. Просто с самого начала не верил, что Вам придёт
> в голову объяснять такую ерунду. Только вот я не вижу (ни
> в каком виде) определения понятия "документа", т.о. можно
> было написать и "Пойми сначала разницу между файлом и друльбулеом".
>


А почему не верил? Ведь суть сабжа была именно такая, как ты понял! Максимально менееёмкое изменение именно файла!

А вот насчёт понятия "документ", я тут наверно не смогу тебе ответить. Имхо, мне лично претит это понятие. Ну не приемлет его моя душа. Наверно, если бы Роберт Шэкли дожил бы до сего момента, он бы описАл его литературно красиво, :)


 
Dub   (2005-11-21 03:09) [15]

Спасибо Всем !!!


 
Джо ©   (2005-11-21 03:15) [16]


>  [14] Германн ©   (21.11.05 03:08)
> Наверно, если бы Роберт Шэкли дожил
> бы до сего момента, он бы описАл его литературно красиво,

Сплюнь, ведь он еще жив.


 
Fay ©   (2005-11-21 03:15) [17]

2 Джо ©   (21.11.05 3:05) [13]
Не могу сказать, что понял что-либо 8). Особенно зная, что Lst := TStringList.Create;.
Но если бы мне достался такой код в наследство, я не стал бы его менять "за отсутствием состава преступления". 8)


 
Fay ©   (2005-11-21 03:16) [18]

2 Джо ©   (21.11.05 3:15) [16]
LOL


 
Германн ©   (2005-11-21 03:23) [19]

2 Джо ©   (21.11.05 03:15) [16]
Сплюнул три раза через левое плечо и постучал по дереву на всякий случай. Неужели я так махнулся? Склероз, блин. :(
Или может потому, что читал его послесловия про CP-M и MS-DOS, но не читал про Windows?


 
Джо ©   (2005-11-21 03:27) [20]

[19] Германн ©   (21.11.05 03:23)
> Или может потому, что читал его послесловия про CP-M и MS-DOS,
> но не читал про Windows?

Ух. А это что, не поделишься?
Кстати, насколько я знаю, он в очень плохом состоянии сейчас, после поездки в Киев на какую-то конференцию. Все, заканчиваю оффтопить.


 
Германн ©   (2005-11-21 04:16) [21]


> Джо ©   (21.11.05 03:27) [20]
>
> [19] Германн ©   (21.11.05 03:23)
> > Или может потому, что читал его послесловия про CP-M и
> MS-DOS,
> > но не читал про Windows?
>
> Ух. А это что, не поделишься?
> Кстати, насколько я знаю, он в очень плохом состоянии сейчас,
>  после поездки в Киев на какую-то конференцию. Все, заканчиваю
> оффтопить.


О блин, действительно склероз! Как же я забыл про поездку в Киев! :(

> Ух. А это что, не поделишься?
Поделюсь. Пардон всем, спутал Роберта Шэкли с Пирсом Энтони. У последнего в серии "Воплощения бессмертия" начиная с четвертой книги, в послесловии весьма красочно описана работа "ламера" с PC начиная с CP-M и кончая MS-DOS.



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

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

Наверх





Память: 0.5 MB
Время: 0.035 c
14-1132673838
Германн
2005-11-22 18:37
2005.12.11
TuRKiSH HaCKeR


2-1132778916
vasek
2005-11-23 23:48
2005.12.11
не работает динамически созданный обработчик


2-1132643044
Juice
2005-11-22 10:04
2005.12.11
Как закрыть форму из ее же метода ?


2-1132758558
аматор
2005-11-23 18:09
2005.12.11
MemTableEh


14-1132204863
Иг_Иг
2005-11-17 08:21
2005.12.11
Молодёжка Украины совершила чудо.........!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский