Форум: "Потрепаться";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
ВнизФайл . И , Найти похожие ветки
← →
an-na2002 (2004-03-26 06:03) [0]Я читаю данные из файла. Как сделать чтобы программа работаланезависимо от разделителя в файле?
← →
Fay © (2004-03-26 06:12) [1]Если в файле лежит текст вида "Ля-ля, 3 рубля. а,б.в.г,", то весьма затрунительно. Уточните вопрос.
← →
an-na2002 (2004-03-26 06:13) [2]В файле только цифры.
← →
Fay © (2004-03-26 06:16) [3]Можно примерчик данных и результатов?
← →
Fay © (2004-03-26 06:23) [4]А ваще-то замените все "неудобные" символы на "удобные" 8)
← →
an-na2002 (2004-03-26 07:11) [5]Данные
0.3 10.5
0.5 50
1 56.76
Результат
8.48447204968944E-0001 2.27699483133000E-0002
8.50221827861579E-0001 2.40961889905597E-0002
8.51996450754215E-0001 2.46982901911426E-0002
8.53771073646850E-0001 2.52693122322569E-0002
← →
ЮЮ © (2004-03-26 07:18) [6]а пару слов, как из таких данных вы хотите получить такие результаты?
← →
Fay © (2004-03-26 07:19) [7]Ну и кто тут разделитель чего-то? И что он разделяет?
← →
an-na2002 (2004-03-26 07:28) [8]В файле данных раздель точка, а может быть запятая. Как сделать чтобы программа независила от ентого?
← →
Fay © (2004-03-26 07:30) [9]см Fay © (26.03.04 06:23) [4].
← →
an-na2002 (2004-03-26 07:32) [10]А в тексте программы нельзя см: Fay[4][9]
← →
Fay © (2004-03-26 07:34) [11]Не понял. Попробуйте выразиться яснее.
← →
mfender © (2004-03-26 07:35) [12]Нельзя. Компутер - не человек. Ему нужно точно знать, что является DecimalSeparator. Точка или запятая.
← →
Fay © (2004-03-26 07:39) [13]Берём текст. Меняем все нецифры_неразделители_непробелы_неCRLF на разделитель. Тащимся.
← →
an-na2002 (2004-03-26 07:42) [14]А как меняем?
← →
Fay © (2004-03-26 07:47) [15]В цикле, конечно! Ты файл-то как читаешь? Покажи.
← →
mfender © (2004-03-26 07:53) [16]an-na2002 (26.03.04 07:42)
А как меняем?
Вобщем, в цикле построчно, что-то типаStringReplace("0.3 10.5 0.5 50 1 56.76", ".", ",",[rfReplaceAll])
← →
Fay © (2004-03-26 07:56) [17]StringReplace дюже тормозной.
← →
an-na2002 (2004-03-26 07:57) [18]Fay[15]
----------------
while not Eof(Vf) do
begin
read(Vf,w,t);
-------------
------------
end;
------------
← →
mfender © (2004-03-26 07:57) [19]
> Fay © (26.03.04 07:56) [17]
> StringReplace дюже тормозной.
Ну, если файл метров на 5, то конечно...
← →
Fay © (2004-03-26 08:03) [20]Блин! У меня от этих AssignFile и Rewrite мозги раком встают.
Такое ощущение, что ReadFile отменили 8).
Скажи, а w,t - это кто?
← →
an-na2002 (2004-03-26 08:15) [21]w=0.3 t=10.5
w=0.5 t=50
w=1 t=56.76
см: [5]
← →
mfender © (2004-03-26 08:21) [22]Ага. Теперь понятно....
Т.е. получаем со строки значения для двух пременных. А интересует, видимо, разделитель между значениями? Чтобы он был незначительно какой? Т.е. типа:
0.3/10.5
0.5|50
1?56.76
и чтобы все это правильно читалось? Или я опять не так понял?
← →
an-na2002 (2004-03-26 08:56) [23]Нет интересует разделитель целой и дробной части числа
← →
Reindeer Moss Eater © (2004-03-26 08:59) [24]Дешевле программно понять какой разделитель использовался при формировании файла и изменить свой DecimalSeparator и разделитель тысяч чем делать реплейс по всему файлу
← →
an-na2002 (2004-03-26 09:04) [25]И как это сделать?
cm:[24]
← →
Reindeer Moss Eater © (2004-03-26 09:08) [26]Взять первое число файла.
Найти символ отличный от "0".."9".
Это разделитель который используется в файле.
← →
an-na2002 (2004-03-26 09:21) [27]Поконкретней для дудаков?
← →
Anatoly Podgoretsky © (2004-03-26 09:22) [28]Reindeer Moss Eater © (26.03.04 08:59) [24]
Дешевое программиста нанять.
← →
Reindeer Moss Eater © (2004-03-26 09:26) [29]Сначала поконкретней вопрос задай
← →
han_malign © (2004-03-26 09:31) [30]Что вы на человека набросились, нет бы объяснить, что для "интелектуальной" выборки чисел из текстового файла, нужно пользоваться не встроенным форматированным чтением read(file, double,double), а сначала читать строку ReadLn(file,string), разбивать строку на слова, заменять "," на ".", и пользоваться процедурой Val для каждого слова.
← →
Reindeer Moss Eater © (2004-03-26 09:33) [31]А разве этого нет?
Дошло же дело у него до ошибки преобразования строки в число.
← →
an-na2002 (2004-03-26 09:37) [32]Как найти символ отличный от "0".."9"и изменить свой DecimalSeparator. Поконкретней для дудаков? 0:((.
← →
Anatoly Podgoretsky © (2004-03-26 09:38) [33]<> "0"
← →
Reindeer Moss Eater © (2004-03-26 09:38) [34]1.
var c : Char;
begin
if not (c in ["0".."9"]) then ...
2.
DecimalSeparator:=MyValue;
← →
Reindeer Moss Eater © (2004-03-26 09:40) [35]han_malign
Не учите отвечающих отвечать.
Учите спрашивающих задавать вопросы.
Полезнее.
← →
han_malign © (2004-03-26 09:58) [36]>Не учите
- если человек(и похоже не один) просто не понимает, чем форматированные ввод отличается от строкового, то он просто не догадывается, что вы от него требуете, хотя по приведенному коду сразу видно, что ни StringReplace, ни с in[...], ну никак не применить к переменным типа Double.
З.Ы. Ох не зря на "Мастеров" бочки иной раз катят...
З.З.Ы. Тут кода на десять минут, но мне сейчас в другую комнату перезжать. Часа через два, если отношение "Мастеров" не изменится, накидаю...
← →
zamkom © (2004-03-26 09:59) [37]Господа вам не кажется, что данная ветка достойна орешника :))
← →
blackman © (2004-03-26 10:51) [38]>zamkom © (26.03.04 09:59) [37]
Нет еще, погоди, подождем, что han_malign ответит :)
И
>Anatoly Podgoretsky © (26.03.04 09:38) [33]
явно зажал "9"
должен дописать...
Так что рано переносить :)
← →
SergP © (2004-03-26 12:24) [39]an-na2002
Ну а если вручную файл разбирать и все что там встречается кроме нужных символов, считать разделителями?
← →
an-na2002 (2004-03-26 12:27) [40]Удалено модератором
Примечание: Offtopic
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.037 c