Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.033 c
1-1089605923
leonidus
2004-07-12 08:18
2004.07.25
Для чего в IDE нужна вкладка Diagram?


4-1086858192
Dmitriy_R
2004-06-10 13:03
2004.07.25
Управление чужой программой


1-1089149288
Diver
2004-07-07 01:28
2004.07.25
Как можно преобразовать любое изображение(битмап любого формата)


4-1086894546
mike.dld
2004-06-10 23:09
2004.07.25
RRGGBB


1-1089762117
Алексей
2004-07-14 03:41
2004.07.25
Необходимо вычислять довольно сложные математические выражения.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский