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

Вниз

Тхт файл..   Найти похожие ветки 

 
alexdn ©   (2011-10-03 00:10) [0]

в тхт находится информация в виде тратата, тратата, тратата. т.е. через запятую. Нужно преобразовать в вид
тратата
тратата
тратата
т.е. заменить запятую на перенос строк.. как и чем лучше посимвольно считать тхт?


 
RWolf ©   (2011-10-03 00:26) [1]

TStringList


 
Jeer ©   (2011-10-03 00:33) [2]


> Нужно преобразовать в вид


Где в этот вид надо преобразовать ?
Запись в иной txt-файл ?


 
alexdn ©   (2011-10-03 00:34) [3]

> RWolf ©   (03.10.11 00:26) [1]
насколько мне известно StrList.LoadFromFile(FName); считывает файл построчно StrList[1], StrList[2], а мне нужно посимвольно.


 
alexdn ©   (2011-10-03 00:35) [4]

> Jeer ©   (03.10.11 00:33) [2]
> Где в этот вид надо преобразовать ?
> Запись в иной txt-файл ?
вообщем без разницы, можно и в другой, но лучше просто преобразовать исходный


 
Игорь Шевченко ©   (2011-10-03 00:45) [5]

нахрен оно тебе, программирование ?


 
alexdn ©   (2011-10-03 00:56) [6]

> Игорь Шевченко ©   (03.10.11 00:45) [5]
ну инженер таки


 
Jeer ©   (2011-10-03 00:59) [7]


> alexdn ©   (03.10.11 00:34) [3]
>
> > RWolf ©   (03.10.11 00:26) [1]
> насколько мне известно StrList.LoadFromFile(FName); считывает
> файл построчно StrList[1], StrList[2], а мне нужно посимвольно.
>


Да.. совсем все печально.
Если уж говорить о.. Стринглист загружает файл, в соответствии с сепаратором CRLF.
После загрузки, свойство Text доступно как string - вот и обрабатывай посимвольно.


 
alexdn ©   (2011-10-03 01:05) [8]

> Jeer ©   (03.10.11 00:59) [7]
> После загрузки, свойство Text доступно как string - вот
> и обрабатывай посимвольно.
мне бы схемку аль чертёж)..


 
Jeer ©   (2011-10-03 01:10) [9]

?

lst: TStringList
ch: char;
...

s := lst.Text;
for i:= 1 to Length(s) do begin
 ch := lst[i];
// do anything with ch
end;

Я уж не говорю о StringReplace(..)


 
Jeer ©   (2011-10-03 01:13) [10]

lst.LoadFromFile(..)
s := StringReplace(lst.Text, CRLF, "", [rfReplaceAll]);
lst.Text := StringReplace(s, ",", CRLF, [rfReplaceAll]);
lst.SaveToFile(..)


 
alexdn ©   (2011-10-03 01:18) [11]

> Jeer ©   (03.10.11 01:10) [9]
потом if ch="," then ch:="#13" ну это образно,
и stringreplace(Edit9.text,".",",",[rfReplaceAll]) я использовал только так..


 
Jeer ©   (2011-10-03 01:23) [12]

const
CRLF = #9#10;

Сначала удаляешь CRLF, затем запятые преобразуешь в CRLF.


 
alexdn ©   (2011-10-03 01:52) [13]

> Jeer ©   (03.10.11 01:23) [12]
спасибо, зделал так
var StrList: TStringList;
FName:string[10];
s:string;
begin
Memo1.Lines.SaveToFile("1.txt");
StrList:=TStringList.Create;

FName:="1.txt";
StrList.LoadFromFile(FName);
//s:= StringReplace(StrList.Text, CRLF, "", [rfReplaceAll]);
StrList.Text:= StringReplace({s}StrList.Text, ",", CRLF, [rfReplaceAll]);
StrList.SaveToFile("1.txt");
StrList.Free;
Memo1.Lines.LoadFromFile("1.txt");
end;
но на выходе почему то идёт лишний пробел по строкам, что то не пойму откуда он берется?..
петя
_маша
_даша


 
alexdn ©   (2011-10-03 09:26) [14]

перенос это CRLF=#9#10; или #10 или #13? что то по памяти а не #10#13?


 
Медвежонок Пятачок ©   (2011-10-03 09:33) [15]

TRegExpr сплит


 
MBo ©   (2011-10-03 09:33) [16]

свойство CommaText


 
alexdn ©   (2011-10-03 10:15) [17]

> Jeer ©   (03.10.11 01:23) [12]
всё, пробел убрал, я его просто дважды -
StrList.Text:= StringReplace({s}StrList.Text,",",CRLF,[rfReplaceAll]);
StrList.Text:= StringReplace({s}StrList.Text," ","",[rfReplaceAll]);

> Медвежонок Пятачок ©   (03.10.11 09:33) [15]
> MBo ©   (03.10.11 09:33) [16]
насколько я понимаю это уже совсем другая опера


 
RWolf ©   (2011-10-03 10:16) [18]


> MBo ©   (03.10.11 09:33) [16]

именно.
две строки и никаких циклов.


 
RWolf ©   (2011-10-03 10:17) [19]

впрочем, я подразумевал присвоение свойства Delimiter с последующим вызовом LoadFromFile.


 
Медвежонок Пятачок ©   (2011-10-03 10:37) [20]

насколько я понимаю это уже совсем другая опера


это точно.
это опера для программистов.


 
alexdn ©   (2011-10-03 10:49) [21]

и ещё я тут запутался
FName:="1.txt";
 AssignFile(F_i,FName);
  reset(F_i);
StrList:=TStringList.Create;
StrList.LoadFromFile("1.txt");
     x:=0;
 While not eof(F_i) do //задаем цикл до конца файла
  begin
StrList[x]:=inttostr(x)+StrList[x];
x:=x+1;
  end;
  //closefile(F_i);
StrList.SaveToFile("1.txt");
StrList.Free;
  closefile(F_i);
Memo1.Lines.LoadFromFile("1.txt");
end;
по видимому нельзя связывать StrList и assignfile с одним файлом одновременно, как же мне тогда использовать   while not eof(F_i) do?


 
QAZ   (2011-10-03 10:50) [22]


> alexdn ©   (03.10.11 09:26) [14]

#13#10


 
alexdn ©   (2011-10-03 10:50) [23]

короче нужно просто пронумеровать строки


 
Inovet ©   (2011-10-03 11:00) [24]

Ну вот на кой грузить весь файл в память? Может файл окажется 100Гб, да и вообще зачем. Читай из одного и сразу пиши в другой посимвольно или буфер небольшой сделай.


 
Медвежонок Пятачок ©   (2011-10-03 11:07) [25]

по видимому нельзя связывать StrList и assignfile с одним файлом одновременно

Мда.
Кто бы мог подумать, что лоадфромфайл стринглиста может обломать последующий ассайн.

вот что бывает, когда делаешь все задом наперед.


 
alexdn ©   (2011-10-03 11:29) [26]

> Медвежонок Пятачок ©   (03.10.11 11:07) [25]
и что ж делать? есть ли какой нибудь цикл для StrList вместо While not eof(F_i) do или как это вообще организовать?..


 
Медвежонок Пятачок ©   (2011-10-03 11:41) [27]

ты зашел в комнату без окон.
там горит свет.
в комнате висит картина.
ты выключаешь свет, затем фотографируешь картину.

первое получается, второе нет.
потому что делать надо наоборот.
сначала фотографировать, затем свет вырубать.


 
Германн ©   (2011-10-03 11:56) [28]


> по видимому нельзя связывать StrList и assignfile с одним
> файлом одновременно, как же мне тогда использовать   while
> not eof(F_i) do?

А на кой тебе вообще этот while not eof(F_i) do?
Чем не устраивает for i:=o to StrList.Count-1 do


 
Ega23 ©   (2011-10-03 11:58) [29]

TStringStream


 
alexdn ©   (2011-10-03 12:01) [30]

> Германн ©   (03.10.11 11:56) [28]
вот) всё работает)


 
Anatoly Podgoretsky ©   (2011-10-03 19:13) [31]


> ну инженер таки

Не льсти себе.



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

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

Наверх




Память: 0.51 MB
Время: 0.004 c
15-1316636981
Юрий
2011-09-22 00:29
2012.01.08
С днем рождения ! 22 сентября 2011 четверг


2-1317112841
lesstab
2011-09-27 12:40
2012.01.08
OnDataChange - хитрость. Не грех ли?


2-1317219642
Gu
2011-09-28 18:20
2012.01.08
события


2-1317565266
Pcrepair
2011-10-02 18:21
2012.01.08
TWebBrowser обрабатывает JAVA с ошибкой


15-1316692399
Очень Злой
2011-09-22 15:53
2012.01.08
помогите найти заразу





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