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