Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.01.08;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.01 c
2-1317158516
я
2011-09-28 01:21
2012.01.08
Преобразование форматов TBitmap


2-1317272307
Gu
2011-09-29 08:58
2012.01.08
передний план


2-1317631902
alexdn
2011-10-03 12:51
2012.01.08
Разложить строку посимвольно


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


2-1317305480
Очень Злой
2011-09-29 18:11
2012.01.08
Как работать с двухмерным динамический массивом?