![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Georg4 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 961 Регистрация: 2.11.2002 Репутация: 0 Всего: 10 |
Мне нужно все строки текстовгог файла слить в одну. Я делаю:
while not eof(f) do begin readln(f,s); s1:=s1+s; richedit1.Lines.Add(s1); Оно выдает весь процесс записи. Т.е. сначала одну строку, потом две потом 3 и так прибавляя по одной строке. внимание,Ворос! Что делать? -------------------- Никто и никогда не должен решать одну проблему дважды |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Dmitry V.Abramov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 30.9.2003 Где: Saint-Petersburg Репутация: 5 Всего: 4 |
Ой... Лучше без "тяжелой артиллерии" в виде TStringList. Он ведь при чтении из файла сначала добросовестно распарсит все CRLF и уберет их. Потом при GetText снова добросовестно приклеит CRLF к каждой строчке... IMHO, проще и шустрее было бы примерно так:
--------------------
/DVA |
|||
|
||||
| Paradox |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: нет Всего: 1 |
А может так:
Это сообщение отредактировал(а) Paradox - 18.11.2003, 07:11 -------------------- --- |
|||
|
||||
| Georg4 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 961 Регистрация: 2.11.2002 Репутация: 0 Всего: 10 |
Это же то что я в начале сказал, это не получилась, а вункция Vit`a работает. Спасибо! И ещё вопрос, хочу в этой строке убрать все пробелы, пишу: for i:=0 to length(s) do s1:= copy (s,1,i); while s1 = ' ' do delete (s,1,i); Нифига! как? -------------------- Никто и никогда не должен решать одну проблему дважды |
|||
|
||||
| DonPager |
|
|||
|
Колдырь ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 28.3.2003 Где: Воронеж Репутация: нет Всего: 2 |
Для пробелов вот
тоже подойдёт для выкидывания CRLF (S[i] <> #13) -------------------- кодер + лодырь = колдырь |
|||
|
||||
| Dmitry V.Abramov |
|
||||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 30.9.2003 Где: Saint-Petersburg Репутация: 5 Всего: 4 |
Посмотри еще раз внимательно и найди одно отличие:
--------------------
/DVA |
||||||||
|
|||||||||
| Vit |
|
||||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Но так лучше:
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
||||
|
|||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Спорить не буду, тем более что наиболее оптимальным было бы просто считывание файла в буффер, просто мне так удобнее, я привык и часто использую TStringList. Хотя конечно могу привести ещё штук 10 совершенно различных способов чтения файлов... -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Vit |
|
||||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
По поводу этого и других вариантов с ReadLn - имеют ограничеснное применение для очень больших или очень маленьких файлов. Для файлов размером от 1 кб до 20 мегабайт прочитывание всего файла в поток будет работать намного быстрее и эффективнее. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
||||
|
|||||
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
[offtop]
TStrings rules! Наверно, мой самый любимый инструмент. [/offtop] |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
А если в одну строчку:
Только ScrollBars должно быть ssBoth (для красоты) |
|||
|
||||
| Georg4 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 961 Регистрация: 2.11.2002 Репутация: 0 Всего: 10 |
Обязательно учту!!:) Теперь я делаю чтоб провыеряло являются ли последние 2(или1) символа цифрами, и если нет то убрать оба(или тот кторый не цифра) -------------------- Никто и никогда не должен решать одну проблему дважды |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Простые задачи должны иметь простые решения!
Определяем строковую переменную (побольше) Определяем символьную переменную (под 1-н символ) организуем прорамму ... Читаем символ из файла Цикл пока - while (h = #10) OR (h = #13) then читаем сивол; ... Т.е. #10, #13 обозначают конец строки. Сейчас точно не помню. Загони в паскаль и на пошаговом троссировщике посмотри. И все! Ни каких танцев с бубном! Просто 1-н условный цикл. |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Простые задачи должны иметь простые решения!
Определяем строковую переменную (побольше) - s Определяем символьную переменную (под 1-н символ) - h организуем прорамму ... Читаем символ из файла Цикл пока - while (h = #10) OR (h = #13) then читаем сивол; s:= s + h; Тут h уже точно не конец строки. ... загоняем s в файл. Т.е. #10, #13 обозначают конец строки. Сейчас точно не помню. Загони в паскаль и на пошаговом троссировщике посмотри. И все! Ни каких танцев с бубном! Просто 1-н условный цикл. |
|||
|
||||
| Paradox |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: нет Всего: 1 |
И сколько по твоему это будет работать с файлом килобайт на сорок
-------------------- --- |
|||
|
||||
| beif |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.8.2003 Где: Россия, Кемерово Репутация: нет Всего: 1 |
ДА, посимвольно рабоатать очень долго. Со строками гораздо быстрее и проще - TStrings рулит
|
|||
|
||||
| Black_Joker |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 9.11.2002 Где: Таганрог Репутация: нет Всего: нет |
За сколько партия прикажет - за столько и закончит.
Зато предельно просто и предельно надежно. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |