Я полагаю, что приложение VB.NET использует материал Microsoft .NET GUI, а не привязки Gtk или Qt для .NET? Просто угадай, но, может быть, проблема связана с тем, что Windows (и, возможно, .NET тоже?) Использует UCS-2 (или UTF-16?) И (большинство) приложений Xorg использует / ожидает UTF-8?
Во всяком случае, похоже, что где-то есть ошибка, и, как вы говорите, что-то превращается в одно время слишком много ...
Более подробный: скрипт python ниже:
#!/usr/bin/env python3
import os
import sys
directory = sys.argv[1]
for root, dirs, files in os.walk(directory):
for file in files:
subject = root+"/"+file
text = open(subject).read().split(" ")
for i, s in enumerate(text):
if s.endswith("dp"):
try:
n = str(int(float(s.replace("dp", ""))*0.83))+"dp"; text[i] = n
except ValueError:
pass
open(subject, "wt").write((" ").join(text))
python3 /path/to/replace_numbers.py <directory>
a monkey eats 234dp bananas, while 2657dp would be too much. 234 is more the 12.
становится:
a monkey eats 194dp bananas, while 2205dp would be too much. 234 is more the 12.
python3 /path/to/replace_numbers.py <directory>
FWIW, вот решение с bash oneliners:
(Если бы это было готово, прежде чем я прочитал целые числа, требующие OP, в конце концов, поэтому использование bc для вычисления float math.)
[ f1]... и округлены вниз:
find . -type f|while read f;do cat "$f"|while read a;do b=`echo "$a"|sed 's/.*\([0-9]\+\)dp.*/\1*0.83/'|bc`;b=${b%.*};echo "$a"|sed s/"[0-9]\+dp"/"$b"dp/;done;done