Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.036 c
3-1079765456
Jioniro
2004-03-20 09:50
2004.04.18
Отображение в DbGride значений из двух таблиц!


6-1075749027
Djon007
2004-02-02 22:10
2004.04.18
NMSMTP? или IdSMTP?


4-1076686502
}{enon
2004-02-13 18:35
2004.04.18
Как заблокировать DC?


1-1080128088
Rawman
2004-03-24 14:34
2004.04.18
DBGridEh, кто работал с ним подскажите (EhLib)


1-1080810813
Denisoid
2004-04-01 13:13
2004.04.18
Вопрос по ShellTreeView!





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