forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   С# (http://forum.boolean.name/forumdisplay.php?f=128)
-   -   Операция с файлом (http://forum.boolean.name/showthread.php?t=17701)

wppt 01.01.2013 03:13

Операция с файлом
 
Как осуществить следующее: открыть файл посимвольно читать его. Пока следующий символ - цифра, записывать его в буфер, дописывая его к значению в буфере. Затем строку в буфере перевести в число, провести с ним некоторые операции, потом обратно перевести в строку и записать на том же месте? Пытался сделать что-то сам - потерпел фиаско.

pax 01.01.2013 11:35

Ответ: Операция с файлом
 
если файл небольшой, то можно прочитать его полностью в память как строку File.ReadAllText, сделать манипуляции со строкой и перезаписать файл полностью.

wppt 01.01.2013 15:06

Ответ: Операция с файлом
 
а вот как именно пропускать все кроме цифр? Просто мне нужно найти все числа в файле и побайтово сдвинуть их вправо

pax 01.01.2013 15:27

Ответ: Операция с файлом
 
PHP код:

foreach(char c int str)
{
   if(
Char.IsNumber(c))
   {
     
// цифра
   
}



wppt 01.01.2013 19:19

Ответ: Операция с файлом
 
блин, так хорошо, сейчас что нибудь сконструирую, проверишь? Только не бей сцаными тряпками, учусь я пока :)

pax 01.01.2013 23:07

Ответ: Операция с файлом
 
Тебе в таком случае лучше использовать Regex.Replace

wppt 03.01.2013 17:26

Ответ: Операция с файлом
 
не силен я в регекспах, а с их помощью точно удастся осуществить это?

pax 03.01.2013 21:23

Ответ: Операция с файлом
 
Вот есть такой метод http://msdn.microsoft.com/ru-ru/library/system.text.regularexpressions.regex.matches.aspx
Можно найти все числа с примерным выражением "[0-9]+" и сделать Replace в строке для каждого.

wppt 05.01.2013 14:40

Ответ: Операция с файлом
 
да, вот дела, подумать еще придется

seaman 09.01.2013 00:16

Ответ: Операция с файлом
 
Код:

List<char> chars= new List<char>();
foreach(char c int str)
{
  if(!Char.IsNumber(c)) break;
  chars.Add(c);
}
string digits = new string(chars.ToArray());
int dig = Int32.Parse(digits);
//Делаем с числом что нужно



Часовой пояс GMT +4, время: 18:30.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot