Главная страница
    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
4-1253715907
trix
2009-09-23 18:25
2012.01.08
Как послать нажатие клавиши F2 а затем клавишу "A"


2-1317359287
Natalie
2011-09-30 09:08
2012.01.08
Как отобразить в Memo тест длинною 4000 символов?


15-1316348444
alexdn
2011-09-18 16:20
2012.01.08
Php bb форумный движек и спам боты


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


2-1317627511
Очень Злой
2011-10-03 11:38
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский