Число без разделителей - глупый вопрос #546919


#0 by vechiy
Надо в файл .csv записать значение с типом число без разделителей. Как убрать пробел не преобразуя формат? И что-то и не соображу, как это сделать. Формат возвращает строку.
#1 by 73
А в файле типа не строки?
#2 by Fragster
csv - текстовый файл, там все числа - строки. если принципиально - пиши через ADO
#3 by Господин ПЖ
ты не поверишь - в файле будет строка...
#4 by vechiy
ну вот и у меня сомнения закрались уже давно.. думал, не знаю специфику csv-файлов.. там есть различение типов? Сторона, принимающая csv, говорит, что ряд значений там числа (эти значения получаются из запроса, номера счетов). А некий идентификатор - строка. Формируется в коде. А должен быть числом
#5 by 73
Какие типы могут быть в текстовом файле с разделителями?
#6 by vechiy
Я записываю цсв как обычный текстовый файл. Однако если открыть его потом екселем - номера счетов выражаются числом(степенью). Че то я запутался.
#7 by 73
Ну ты ж хотел числом. А некий идентификатор - форматом отформатируй.
#8 by vechiy
я его если строкой записываю - все равно в екселе преобразуется к числу.. по большому счету - в цсв-файле просто негде хранится информации о типах значений. Форматом - вернёт строку. Надо число) Ну и что касается сабжа - как всё-таки получить число в ЧИСЛОВОМ формате и без пробелов?
#9 by 73
Ексель при открытии пытается определить типы. Если к числу может преобразовать - будет число. В ТЕКСТЕ нет типов. Там всё - строки. Нужный формат задай Формат-ом.
#10 by Dem1urg
Что такое CSV. Это ТЕКСТ. При его открытии некоторыми программами (например, Excel) сами эти программы пытаются интерпретировать данные из файла на свой вкус. Например, строку состоящую из цифр они могут воспринимать как число. Так понятно?
#11 by hhhh
число всегда хранится без пробелов.
#12 by Aprobator
не поверишь - число всегда без пробелов, а вот его представление, которое получается при преобразовании в строку, с пробелом. Получить строковое представление числа без пробелов Формат(Число, "ЧГ=0").
#13 by PR
По-моему сабж жуткий развод
#14 by vechiy
видимо так.. - знаю!) просто на другой стороне эти цсв-файлы разбирают каким-то своим методом. Как разбирают - мне непонятно. Жду от них ответа. ну, видимо, развели меня, а я поневоле развёл вас) т.е. любое преобразуемое к числу значение ексель преобразует?
#15 by Рэйв
Убирай разделители форматом и они должны нормально приниматься на той стороне.
#16 by vechiy
я бы не взрывал тут мозг, если бы принимались выходит, тупит сторона-приёмник?
#17 by Рэйв
Тупит. Если допустим 15569 из файла они получают строкой и не могут сделать из него число, то явно тупит. но если все таки это ты туда пихаешь 15 569 , то тупят уже не они:)
#18 by vechiy
конечно без пробелов изначально записывал
#19 by Kreont
Есть различие типов именно в файле csv: Если строка то обязательно в кавычках екранируючих Если число, то без кавычек, вот и вся разница
#20 by vechiy
щас интересный момент - записываю идентификатор длиной как номер счета. при открытии в ексель - номера счетов выражаются степенью, идентификатор - просто целым числом)
#21 by Kreont
Может у них просто алгорит импорта написан под правильный формат csv. Пример: "56",45.4,"67.7" => Строка, число, строка
#22 by vechiy
ну это различие, я так понимаю, для читающих программ в любом случае, все без кавычек. в том числе и текст
#23 by Aprobator
если пробел в числе убран, то возможный вариант, что на той стороне разделитель дробной части другой юзается, потому преобразование из строки в число и не взлетает.
#24 by Kreont
Надо "текст" в кавычки, а то иначе разделитель груп (например запятую, табуляцию) неполучится передать в файл
#25 by Kreont
#26 by Bida
Я с подобной "фигней" сталкивался. Дело в том, что на той стороне открывают файл через ado драйвером-экселем. Там первую строку эксель пытается сам преобразовать по типам, а затем следующие строки преобразует к этому типу в колоке незавивисмо от содержимого. Для избежания этого надо первой строкой передавать заголовки колонок текстом (то есть название колонки начинается с буквы), тогда эксель будет думать что все следующие строки в колонке - текст. Ещё такая же фигня происходит при интерактивном сохранение экселем в формат csv (может без ковычек фигачить чилса, а драйвер ado потом раскручивает иначе). Ссылку выше тебе дали с описанием формата. Эксель этому формату не следует. Советую объяснить это той "принимающей стороне" и пусть парсят файл как текстовый, а не через драйвер экселя.
#27 by vechiy
как раз-таки при сохранении в цсв из экселя всё вроде нормально. Я же формирую текстовый файл из 1с, сохраняю в .csv В итоге текстовые номера счетов воспринимает как число, а идентификатор - как текст.
#28 by 73
Ну так сравни. Там же ж тексты.
#29 by vechiy
что сравнить? записал идентификатор длиной в 20 знаков - при открытии в эксель преобразовал в число. ппц.
#30 by Bida
1 строкой сделай названия колонок. не тупи.
#31 by 73
Файлы блокнотом не можешь открыть? То что ты создаёшь и то, что Эксель.
#32 by vechiy
походу правильно будет .00   ...хрень идентификатор с дробной частью если не менять тип ячейки, то мои файлы от сохраненных из эксель в цсв ничем не отличаются.
#33 by Ахиллес
100500 грабли с неразрывным пробелом?
#34 by vechiy
не, он тут ни при чём оказывается)
#35 by Ахиллес
Покажи кусок цсв файла и скажи что тебя в нем не устраивает
#36 by vechiy
меня то все устраивает. их программу разбора не устраивает, потому что идентификатор - пятизначное число - неявно преобразуется к строке при разборе. А должно быть число. Сейчас выяснили, вроде.. достаточно .00 добавить
#37 by Ахиллес
Точно неразывных пробелов нету в цсв файле? Формат как раз и вставляет их.
#38 by vechiy
"ЧГ=0"
#39 by vechiy
Проблема так и не разрешилась.. они правят цсв-файл в екселе, выставляют тип "число" для идентификатора. Но при этом сам файл не меняется! И при следующем открытии в эксель тип остаётся "общий". А файлы грузятся..
#40 by Kreont
Пример файла: по типах: Есди "ИХ" програма по такому шаблону csv не схавает файл, то пусть переписывают импорт свой
#41 by vechiy
не хватает
#42 by vechiy
тьфу, не хавает
#43 by Ахиллес
А загрузка то в какую программу идёт?
#44 by vechiy
а хз)
#45 by Ахиллес
Полюбасу руки надо выпрямлять тому прогу, который загрузку писал. Ты ему хоть какой файл пришли, он его неправильно загрузит. Договорись о загрузке из ДБФ если получится. Что бы они в эксель не лазили и не свинячили.
#46 by vechiy
А самое интересное, что от других файлы нормальные приходят) но они вручную из экселя сохраняют) разницы не могу понять..
#47 by vechiy
Оу! Выяснили! При записи из 1ски в цсв в начале строки появляются три символа (можно увидеть в хекс-редакторе, например) Без них - грузится нормально. Осталось понять как записать без них) У кого есть идеи, подскажите
#48 by vechiy
Это видимо символ начала файла.. три символа в начале первой строки Как их убрать?
#49 by Aprobator
поищи по форуму, было что то уже подобное.
#50 by Kreont
Смотрел у себя через hex никаких символов нету :(
#51 by Fragster
это little-big endian сгнатура юникода. сохраняйте не в юникод - и будет все хорошо. или открывайте тем, что этот самый юникод правильно определяет.
#52 by vechiy
всем пасиба) сохранил в вин 1251, все нормуль
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С