Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2008, 19:30   #1
leest
Пользователь
 
Регистрация: 18.01.2008
Сообщений: 22
По умолчанию Текстовые файлы посчитать сколько символов используется в поле

помогите решить вроде бы несложную задачку, которую я сам почему-то решить не могу.
вот собственно задача:
есть текстовый файл, в нем информация:

// название // кол // шифр //цена
stul siniy 6 6 6
stol krasniy 778 7878 56757
divan zeleniy 5 5 5
stul krasniy 1234 5 5
taburet siniy 55 23 234


как мне посчитать сколько символов используется в(количестве, шифре, цене), если я знаю заранее, что первая цифра "количества" начинается, например, с 51 символа, шифра-с 61, цены-с71.
т.е. например, стол красный:3 символа в количестве, 4 символа в шифре, 5 символов в цене.

заранее огромное спасибо тем, кто отзовется, да и тем кто просто зашел посмотреть, тоже свое время тратите)))

Последний раз редактировалось Stilet; 13.02.2008 в 08:57.
leest вне форума Ответить с цитированием
Старый 12.02.2008, 19:32   #2
leest
Пользователь
 
Регистрация: 18.01.2008
Сообщений: 22
По умолчанию

p.s. структура текстового файла сбилась, но это не важно...мы же знаем с какого символа начинается та или иная информация(количество, шифр, цена).
leest вне форума Ответить с цитированием
Старый 13.02.2008, 01:58   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

если я правильно понял вопрос..
Код:
while Not Eof(MyFile) do
begin
  ReadLn(MyFile, S);
  Nazanie := Copy(S, 1, 50);
  Kolicestvo := Copy(S, 51, 61-51);
  Shifr := Copy(S, 61, 71-61);
  Cena := Copy(S, 71, 255); {больше длины строки S всё равно не будет!}
end;

Последний раз редактировалось Serge_Bliznykov; 13.02.2008 в 02:43.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.02.2008, 09:00   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если это в Делфи нужно то лучше применить TStringList к каждос строке, установив пробел разделителем.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.02.2008, 23:21   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
то лучше применить TStringList к каждос строке, установив пробел разделителем.
Stilet, извините, пожалуйста, но, имхо, в данном случае, Вы не правы.. ;-(
если вы обратите внимание на приведённый в #1 пример - то увидите, что в названиях пробел уже присутствует. В приведённом примере название состоит из двух слов, но нигде не сказано, что оно не может быть из одного слова или из трёх-четырёх...
Кроме того, насколько я понял условие, там фиксированная ширина полей...

А вот то, что школяры/студенты не уточняют на Паскале им нужно решение или на Дельфи — это действительно большой им минус!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.02.2008, 19:13   #6
leest
Пользователь
 
Регистрация: 18.01.2008
Сообщений: 22
По умолчанию

извиняюсь, что не написал на чем делать надо...А сделать надо на Дэлфи.то что вы написали дает мне только то, сколько символов в определенном разделе(название, количество...).А мне нужно узнать сколько символов(численных, например 753-значит 3 символа и 7 пробелов...вот именно эти 3 символа мне и надо узнать).помогите пожалуйста скоро курсовик надо будет сдавать, а я никак эту проблему решить не могу, хотя постоянно думаю и ищу информацию об этом...а Stringlist не знаю как использовать, да и препод сказал использовать обычный текстовый файл!!!
leest вне форума Ответить с цитированием
Старый 18.02.2008, 19:14   #7
leest
Пользователь
 
Регистрация: 18.01.2008
Сообщений: 22
По умолчанию

поля фиксированные!
leest вне форума Ответить с цитированием
Старый 18.02.2008, 20:09   #8
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Мне кажется здесь нужно что-то типа этого:
Код:
while Not Eof(MyFile) do 
    begin ReadLn(MyFile, S);
         kol:=0;
         for i:=51 to 60 do
         if s[i] in [0..9] then kol:=kol+1;
         shifr:=0;
         for i:=61 to 70 do
         if s[i] in [0..9] then shifr:=shifr+1;
         cena:=0;
         for i:=71 to lendth(s) do
         if s[i] in [0..9] then cena:=cena+1;
    end;
puporev вне форума Ответить с цитированием
Старый 19.02.2008, 20:59   #9
leest
Пользователь
 
Регистрация: 18.01.2008
Сообщений: 22
По умолчанию

спасибо, буду пробовать...наверное так должно получиться....что получится, напишу....все равно спасибо!!!!!!!!!!!!
leest вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на текстовые файлы Paul11j Помощь студентам 20 17.03.2008 13:20
текстовые файлы ОЧЕНЬ НУЖНА ПОМОЩЬ leest Помощь студентам 6 30.01.2008 10:05
Текстовые файлы на С Raptor Общие вопросы C/C++ 15 26.01.2008 21:06
Текстовые файлы(задачка). Vadim2008 Общие вопросы C/C++ 1 11.01.2008 16:45