![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Помогите написать конвертер. Приведенный ниже код работает только если строка не больше 200 символов.
Нужно из файла все что располагается между / / записать в массив. Код:
if form1.OpenDialog1.Execute then fname:=form1.OpenDialog1.FileName;
TStr := TStringList.Create;
try
TStr.LoadFromFile(fname);
for t:=0 to TStr.Count-1 do
begin
str:=TStr.Strings[t];
k:=1;
a:='';
for i:=1 to length(str) do
begin
if str[i]<>'/' then a:=a+str[i] else
begin
m[k]:=a;
Inc(k);
a:='';
end;
end;
m[k]:=a;Последний раз редактировалось Aristarh Dark, 04.05.2012 в 15:32. |
|
#2
|
||||
|
||||
|
Запихиваем весь файл в одну строку, затем как-то так:
Код:
uses StrUtils;
...
CopyStart:=Pos('/',str);
CopyEnd:=PosEx('/', str, CopyStart+1);
S := Copy(str, CopyStart+1, CopyEnd-CopyStart-1); |
|
#3
|
|||
|
|||
|
Спасибо Ваш код намного меньше.
Но у меня проблема в том что когда использую переменную String обрезается часть текста TStr.LoadFromFile(fname); //- строка 1000 символов for t:=0 to TStr.Count-1 do begin str:=TStr.Strings[t]; //- строка 250 символов в итоге часть текста пропадает Последний раз редактировалось tabivan, 04.05.2012 в 17:01. |
|
#4
|
||||
|
||||
|
Если TStr - это TStringList то он разбивает текст на строки по #13 и еще если встречается символ #0 - то он интерпретируется как конец строки.
|
|
#5
|
|||
|
|||
|
Цитата:
|
|
#6
|
||||
|
||||
|
Цитата:
![]() Код:
var s:string; begin s:='asdasdasdasd'#0'asdkahsdlkhasdааа'; ShowMessage(s); end; |
|
#7
|
|||
|
|||
(((1111111;;1111;22/02пппппп/03ппппппп/04аааааа/0519791215/068401052537/07аааааа;аааа;аааааа;аааааа;/08ааааа;ааааа;аааааа;ааааа;-;-;-;-/09ааааааааааа;ааааааааааа;аааааааа;аааааааааааа;-;-;-;-2225/2383160/2420080520/27118470/3049/314/332/4322802/4463/4514/ааааааааааааааааааааааааааааааааааааааааааааааа/6120080518/аааааааааааааааааааааааааааааааааааааааааа;-;-;-;-781/79аааааааааааааааааааааааааааааааааааааааа,22041/99вввв=34157702))) |