:: Visual Foxpro, Foxpro for DOS
Как гарантированно сделать заглавные буквы в имени файла?
poiuyt555
Автор

Сообщений: 255
Дата регистрации: 18.02.2008
Здравствуйте.
Как гарантированно сделать заглавные буквы в имени файла?
При создании файла из VFP 9 файл с маленькими буквами в имени, хотя в программе забиты большие.
Как поняли, дело в винде, но есть ли возможность это обойти?
Ratings: 0 negative/0 positive
Re: Как гарантированно сделать заглавные буквы в имени файла?
ry

Сообщений: 2114
Дата регистрации: 24.09.2007
Какой смысл, если имена файлов в Windows регистронезависимы? Впрочем, подобное уже обсуждалось:
forum.foxclub.ru
forum.foxclub.ru
Ratings: 0 negative/0 positive
Re: Как гарантированно сделать заглавные буквы в имени файла?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Использовать АПИ функции (в частности MoveFile - она переименовывает файлы), использовать команды cmd (запуская его тем или иным способом - начиная с RUN и заканчивая CreateProcess) - по отдельности или в сгенерированном bat/cmd файле, если таковых "переименований" требуется множество (команда ren переименовывает файл).

Учитывая что не все файловые системы поддерживают хранение регистра имени файла (могут "автоматом" переводить в верхний регистр, к примеру), и что большинство виндовых файловых систем не учитывает регистр имени файла при его обработке - т.е. грубо говоря винде по барабану назван файл test.txt, TEST.TXT, Test.txt или вообще tExT.tXt - она будет считать все эти имена эквивалентными. Вот в юниксе ситуация обратная - в большинстве случаев регистр имени файла имеет значение...


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Как гарантированно сделать заглавные буквы в имени файла?
poiuyt555
Автор

Сообщений: 255
Дата регистрации: 18.02.2008
Спасибо всем, кажется, нашел какое-то решение, по карйней мере на 1-м пк работает.
Отсюда
social.msdn.microsoft.com
Ratings: 0 negative/0 positive
Re: Как гарантированно сделать заглавные буквы в имени файла?
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
poiuyt555
При создании файла из VFP 9 файл с маленькими буквами в имени, хотя в программе забиты большие.

А в каком конкретно коде получаются всегда маленькие?
Проверил, у меня например в таком коде создаются всегда большими:
CREATE TABLE SAMPLE.DBF (f1 c(10))
COPY TO SAMPLE1
USE
аналогично:
fn = FCREATE("SAMPLE.TXT")
FCLOSE(fn)


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: Как гарантированно сделать заглавные буквы в имени файла?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
К примеру
COPY FILE ... TO "NewFileName.txt"


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Как гарантированно сделать заглавные буквы в имени файла?
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Igor Korolyov
К примеру
COPY FILE ... TO "NewFileName.txt"

Да, в нем и не работает. Поэтому я и спросил автора, в каком коде. Т.е. при желании в ряде случаев вполне можно написать фоксовые эквиваленты используемым командам подобного рода. Всегда лучше (и не только в фоксе) "обойтись внутренними силами", чем привлекать какие-то внешние для решения внутренних проблем.

Скажем по примеру навскидку ну хотя бы так:
cStr = FILETOSTR("SAMPLE.TXT")
STRTOFILE(cStr,"SAMPLE1.TXT")


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)




Исправлено 1 раз(а). Последнее : Crispy, 24.03.17 14:30
Ratings: 0 negative/0 positive
Re: Как гарантированно сделать заглавные буквы в имени файла?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
"хотя бы так" вызовет считывание всего файла (при том целиком - не по частям - т.е. забиваем ещё и память, не только диск напрягаем) и потом запись его обратно. Как по мне, то для банального "переименования", да и для "перемещения" - если оно происходит в рамках одного дискового раздела - это явный перебор...


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Как гарантированно сделать заглавные буквы в имени файла?
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Igor Korolyov
"хотя бы так" вызовет считывание всего файла (при том целиком - не по частям - т.е. забиваем ещё и память, не только диск напрягаем) и потом запись его обратно. Как по мне, то для банального "переименования", да и для "перемещения" - если оно происходит в рамках одного дискового раздела - это явный перебор...

Да это как пример, что возможно в принципе. При желании еще в самом коде всегда можно подобрать альтернативы. В этом отношении фокспро более многовариантен. чем многие другие языке - почти для всего всегда есть несколько примерно одинаковых решений с разным синтаксисом.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)




Исправлено 1 раз(а). Последнее : Crispy, 27.03.17 08:02
Ratings: 0 negative/0 positive
Re: Как гарантированно сделать заглавные буквы в имени файла?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
"В принципе" возможно много вредного кода понаписать Но не нужно этого делать. А вариантов "чисто переименования" действительно хватает и помимо "встроенных" фоксовых команд...


------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 37 (Гостей: 37)

© 2000-2024 Fox Club 
Яндекс.Метрика