Главная страница
    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.034 c
3-1088672000
GanibalLector
2004-07-01 12:53
2004.07.25
два TIBTransaction !


9-1081437245
Михаил__
2004-04-08 19:14
2004.07.25
Сообщение


3-1088765847
Nikolai_S
2004-07-02 14:57
2004.07.25
Как записать в поле binary файл и потом считать его обратно?


14-1088767653
GuAV
2004-07-02 15:27
2004.07.25
Ответ Майкрософт - LOL :)


14-1089123073
VEG
2004-07-06 18:11
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский