У меня есть столбец «размер файла», который был неудачен, так как он несовместим. Например, значения могут быть: «4 ГБ», «32 МБ», «320 КБ», «932 байта» и т. Д. Мне нужно преобразовать их все в стандартное значение, чтобы я мог добавить их для отчета.Преобразование различных размеров файлов в байты
ответ
Байты, килобайты, мегабайты и т. Д. - все метрические единицы. Просто выберите стандартную единицу для своего отчета (скажем, мегабайты) и умножьте или разделите значения, указанные в разных единицах, чтобы получить нужные вам значения.
Я бы сказал, у вас есть два варианта:
1: требуют, чтобы все эти данные будут в единицах байтов (вероятно, не представляется возможным, если уже существует данные)
2: использовать регулярное выражение для разделения номер из устройства, затем используйте оператор switch (или цикл или что угодно), чтобы выполнить правильные умножения, чтобы получить число в байтах (возможно, это проще).
редактировать:
регулярное выражение будет выглядеть примерно так:
(\d*) *(.*)
Это будет фиксировать количество и единицы отдельно и игнорировать любые пробелы между ними (вам все равно придется урезать вклад в регулярное выражение, как предыдущее и продолжающееся пробелы, может вызвать некоторое горе).
Рассмотрим данный подход
- выбрать один формат отображения. Возможно, выберите байты.
Для каждой ячейки:
определить ее масштаб. Это, скорее всего, будет включать синтаксический анализ строк, ища «концы с» некоторым допустимым диапазоном возможностей: «байты», «kb», «mb», «gb», «килобайты», «гигабайты». Сначала преобразуйте в нижний регистр, чтобы обеспечить здравомыслие. Рассмотрите также орфографические ошибки!
экстракт номер. Используйте вариант этого VBA numeric regex, чтобы извлечь номера. Остерегайтесь десятичных знаков!
ваш выход будет (число) * (шкала в байтах)
Вот очень простой ответ - но это может сделать это очень быстро исправить для вас, если отсчетов точных байт являются не все важно. Просто выполните простой поиск текста и замените его.
Замените «KB» (и «килобайты» и другие варианты) на «000», «MB» с «000000» и «GB» на «000000000». «байты» вы заменяете на «». Затем преобразуйте тип ячейки/столбца в числовой.
Это не так просто, если значения заданы с десятичными знаками («4.32 MB»), но ваши примеры должны работать нормально.
- 1. Python добавлять массивы различных размеров
- 2. Подменят матрицы различных размеров
- 3. Перебор массивов различных размеров
- 4. Поддержка различных размеров андроида?
- 5. итераторы массивов различных размеров
- 6. Преобразование NSString в байты
- 7. Преобразование гигабайт в байты
- 8. Преобразование UUID в байты
- 9. Преобразование int в байты
- 10. Преобразование объектов в байты
- 11. Преобразование структуры в байты
- 12. Преобразование строки в байты
- 13. Преобразование строки в байты
- 14. Преобразование UIImage в байты
- 15. Merge dataframes различных размеров
- 16. Умножение листы различных размеров
- 17. Массив массивов различных размеров
- 18. Сравнение строк различных размеров
- 19. Загрузка различных размеров изображений в TImageList
- 20. MDX запросов различных комбинаций различных размеров
- 21. Объединение различных размеров для различных устройств
- 22. Mobile Web App - обработка файлов изображений различных размеров
- 23. загрузка изображений различных размеров в различных папках с помощью Pluploader
- 24. Преобразование формата Gnuplot, байты
- 25. несколько фоновых изображений различных размеров
- 26. JavaScript, сравнивать массивы различных размеров
- 27. относительно понимания различных размеров экрана
- 28. макета для различных размеров экрана
- 29. Преобразование целого числа в байты
- 30. Преобразование массива битмапа в байты
Пожалуйста, напишите, что вы попробовали, и каков был результат. –
Без надлежащих базовых данных ваши значения будут плохо истолкованы. Когда выражено в терминах ГБ, потребляет ли 499 МБ 0 или 1 ГБ? Как насчет '932 байта'? ... сколько байтов находится в ~ 4 ГБ данных? 4294967296 или 4400000000 или 3900000000 .... просто что-то рассмотреть.Используйте грубое округление и сделайте с ним. – jcolebrand