Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
Внизтекстовый файл Найти похожие ветки
← →
mochoni (2004-07-09 11:37) [0]фсем привет! объясните плиз как реализовать задачу.
Дан текстовый файл в котором определеная структура последовательности символов.Мне необходимо с начала файла после каждого 13 символа | поставить символ ;
Помогите с реализацией
← →
Billi (2004-07-09 11:42) [1]читаеш файл в строку S
b:=1;
for i:=1 to S[0] do begin
if S[i]=#13 then begin
S2[b]:=S[i];
inc(b);
S2[b]:="|";
end
else
S2[b]:=S[i];
inc(b);
end;
записываеш строку S2 в файл
← →
mochoni (2004-07-09 12:17) [2]Плиз! Опишите по падробнее!!
← →
Reindeer Moss Eater © (2004-07-09 12:21) [3]Билли, что же это за файл, помещающийся в ShortString?
Кроме того точку с запятой просили ставить не после каждого символа #13, а после каждого тринадцатого символа "|"
← →
ZiRoCool (2004-07-09 12:22) [4]хмм, били, ты не правельно задачу понял,там автор говорит что нада после каждого триннадцатого символа "|" поставить символ ";", вроде так
← →
Bill © (2004-07-09 12:22) [5]копируем все сиволы до знака #13
из одной строки в другую, если втречается #13 то во вторую строку добавляем #13|
ток ошибочка вышла в коде не большая (переполнее не учел :) )
читаеш файл в строку S
b:=1;
for i:=1 to S[0] do begin
if S[i]=#13 then
S2:=S2+S[i]+"|";
else
S2:=S2+S[i];
end;
записываеш строку S2 в файл
← →
Bill © (2004-07-09 12:26) [6]Нет ну может я и не правильно понял :))
to : Reindeer Moss Eater
нармальный файл, начиная с 5 Delphi в стору 4 гига закатать можно :)
← →
Reindeer Moss Eater © (2004-07-09 12:28) [7]нармальный файл, начиная с 5 Delphi в стору 4 гига закатать можно :)
C пятой говоришь?
Ну да ладно.
А это тогда что такое?
for i:=1 to S[0] do begin
← →
Bill © (2004-07-09 12:33) [8]Ну да не прав, заменим S[0] на Length(S)
я тут алгоритм изложил а непрогу написал
← →
mochoni (2004-07-09 13:01) [9]я просто не коректно произнес условия.Попробую заново.
Имеется строка вида 43frft4tg|"135176000868101"|"ewrfrrtr"|"Т190"||"rtb6ybyt yun"|||"yuyu898h6g67h"|"yuhtyg"|"yuyuhyuh"|1|0|0
в ней 13 знаков (вот таких |).
Вот после этого 13 символа мне нужно поставить знак(вот такой ;)
← →
Bill © (2004-07-09 13:13) [10]Ну так бы исказал что таблица каждая запись 13 полей )))
надо разделить поля :))
ну все тоже самое
читаеш файл в строку S
b:=0;
for i:=1 to Length(S) do begin
S2:=S2+S[i];
if S[i]="|" then begin
inc(b);//считаем кол-во "|"
if b=13 then begin
b:=0;
S2:=S2+";";
end;
end;
end;
записываеш строку S2 в файл
← →
ssk © (2004-07-09 13:28) [11]вот так тоже можно
procedure SetSymbolAfter13(s: string);
const
AfterSymbol = "|";
InsertSymbol = ";";
var
k, count: integer;
begin
count:=0;
for k:=1 to Length(s) do
begin
if s[k] = AfterSymbol then
Inc(count)
else Continue;
if count=13 then
begin
count:=0;
insert(InsertSymbol, s, k+1);
end;
end;
end;
← →
Bill © (2004-07-09 13:32) [12]to:ssk :) интересный вариант, только параметры цикла считаются перед инициализицией вроде => строка будет пройдена не полностью.
← →
Ega23 © (2004-07-09 13:37) [13]Bill © (09.07.04 13:32) [12]
Ты в этом уверен?
← →
Bill © (2004-07-09 13:40) [14]угу
← →
Ega23 © (2004-07-09 13:42) [15]Зря.
← →
Sergey Kaminski (2004-07-09 20:46) [16]А так побыстрее не будет? ;)
N := 0;
for I := 1 to Length(S) do
begin
if S[I] = "|" then
Inc (N);
if N = 13 then
begin
NewS := Copy (S,1,I) + ";" + Copy (S,I+1,Length(S));
Break
end;
end;
← →
Sergey Kaminski (2004-07-09 20:49) [17]А если этих "|" будет в строке точно 13, значит, судя по приведенной строке, эта палочка будет в ней последней. Тогда можно еще ускорить и начать перебор с конца строки до первой "палки".
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.038 c