// входящие данные
string data = "0x00 00 00 00 00 00 00 00 00 00 00 00 00 00 30 39 ..............09";
// получаем позицию первой найденной точки
int endIndex = data.IndexOf(".");
// получаем позицию первого вхождения символов 00
// с конца строки начиная с endIndex
int startIndex = data.LastIndexOf("00", endIndex) + 2; // + размер искомых символов
// выделяем часть строки и удаляем лишние пробелы по бокам
string result = data.Substring(startIndex, endIndex - startIndex).Trim();
// выводим результат
Console.WriteLine(result);
// можно одной строкой написать, но так проще понять
string data = "0x00 00 00 00 00 00 00 00 00 00 00 00 00 3D 12 7E ..............01";
string result = data.Replace("0x", "").Replace("00", "").TrimEnd("0123456789.".ToCharArray()).Trim();
Console.WriteLine(result);
string data = "0x00 00 00 00 00 00 00 00 00 00 00 00 00 3D 12 7E ..............00";
string result = data.Substring(2).TrimStart("0 ".ToCharArray()).TrimEnd("0123456789.".ToCharArray()).Trim();
Console.WriteLine(result);
string hex = 10008.ToString("x2");
int num = 255;
string hex = num.ToString("x2");
// переменная hex будет иметь значение ff
hex = num.ToString("X2");
// переменная hex будет иметь значение FF
byte[] data = new byte[] {1,2,3,4,5,128,255};
string hex = String.Join(" ", data.Select(b=> b.ToString("x2")).ToArray());
Console.WriteLine(hex);
01 02 03 04 05 80 ff
string data = "Привет, человеки!";
string hex = String.Join(" ", data.ToString().Select(ch => ((byte)ch).ToString("x2")).ToArray());
Console.WriteLine(hex);
string data = "Привет, человеки!";
string hex = String.Join(" ", System.Text.Encoding.GetEncoding(1251).GetBytes(data).Select(b => b.ToString("x2")).ToArray());
Console.WriteLine(hex);
cf f0 e8 e2 e5 f2 2c 20 f7 e5 eb ee e2 e5 ea e8 21
string data = "Привет, человеки!";
string hex = String.Join("-", System.Text.Encoding.GetEncoding(1251).GetBytes(data).Select(b => b.ToString("x2")).ToArray());
Console.WriteLine(hex);
cf-f0-e8-e2-e5-f2-2c-20-f7-e5-eb-ee-e2-e5-ea-e8-21
int i = 0;
bool b = false;
while (i < 10)
{
Console.WriteLine("Текущее: {0}", i);
if (i == 5 && !b)
{
b = true;
continue;
}
i++;
}
int i = 0;
bool b = false;
while (i < 10)
{
again: // точка возврата
Console.WriteLine("Текущее: {0}", i);
if (i == 5 && !b)
{
b = true;
goto again;
}
i++;
}
// пауза между попытками (100 мс)
var interval = new TimeSpan(0, 0, 0, 0, 100);
// максимальное время ожидания (1 секунда)
var timeout = new TimeSpan(0, 0, 0, 1);
while (true)
{
var totalTime = new TimeSpan(); // счетчик времени
var заданиеВыполнено = false;
while(!заданиеВыполнено) // повторять, пока задание не будет выполнено
{
try
{
// тут код задания
// если ошибок не будет, то
заданиеВыполнено = true; // работа цикла будет завершена
}
catch
{
// если ошибка, делаем паузу
System.Threading.Thread.Sleep(100);
// увеличиваем счетчик времени
totalTime += interval;
if (totalTime > timeout)
{
// превышен таймаут, выходим
Console.WriteLine("Превышено время ожидания");
break;
}
}
}
}
[Serializable]
[XmlRoot("ValCurs")]
public class ValCurs
{
[XmlAttribute("Date")]
public string Date { get; set; }
[XmlAttribute("name")]
public string Name { get; set; }
[XmlElement("Valute")]
public Valute[] Items { get; set; }
}
[Serializable]
public class Valute
{
[XmlAttribute("ID")]
public string Id { get; set; }
public string NumCode { get; set; }
public string CharCode { get; set; }
public string Name { get; set; }
public string Nominal { get; set; }
public string Value { get; set; }
}
public partial class Form1 : Form
{
private int BrushType = 1;
public Form1()
{
InitializeComponent();
// создаем PictureBox
var pic = new PictureBox { Dock = DockStyle.Fill, BackColor = Color.White };
pic.MouseClick += PictureBox_MouseClick;
this.Controls.Add(pic);
// создаем панель для кнопок
var panel = new FlowLayoutPanel { Dock = DockStyle.Top, AutoSize = true };
this.Controls.Add(panel);
// кнопки
var btn = new RadioButton
{
Text = "Круг",
Tag = 1,
Appearance = Appearance.Button,
Checked = true,
AutoSize = true
};
btn.Click += Button_Click;
panel.Controls.Add(btn);
btn = new RadioButton
{
Text = "Не круг",
Tag = 2,
Appearance = Appearance.Button,
AutoSize = true
};
btn.Click += Button_Click;
panel.Controls.Add(btn);
btn = new RadioButton
{
Text = "Квадратный круг",
Tag = 3,
Appearance = Appearance.Button,
AutoSize = true
};
btn.Click += Button_Click;
panel.Controls.Add(btn);
}
private void Button_Click(object sender, EventArgs e)
{
var btn = (RadioButton)sender;
this.BrushType = (int)btn.Tag;
}
private void PictureBox_MouseClick(object sender, MouseEventArgs e)
{
// получаем ссылку на PictureBox
var pic = (PictureBox)sender;
// получаем Graphics из PictureBox
var g = pic.CreateGraphics();
if (this.BrushType == 2)
{
// рисуем не круглый квадрат
g.DrawRectangle(Pens.Black, e.X, e.Y, 50, 50);
}
else if (this.BrushType == 3)
{
// рисуем квадратный круг
Point[] points = new Point[6];
int half = 50 / 2;
int quart = 50 / 4;
points[0] = new Point(e.X + quart, e.Y);
points[1] = new Point(e.X + 50 - quart, e.Y);
points[2] = new Point(e.X + 50, e.Y + half);
points[3] = new Point(e.X + 50 - quart, e.Y + 50);
points[4] = new Point(e.X + quart, e.Y + 50);
points[5] = new Point(e.X, e.Y + half);
g.DrawPolygon(Pens.Black, points);
}
else
{
// рисуем эллипс
g.DrawEllipse(Pens.Black, e.X, e.Y, 50, 50);
}
}
}
var pic = (PictureBox)sender;
if (pic.Image == null) { pic.Image = new Bitmap(pic.Width, pic.Height); }
var bmp = new Bitmap(pic.Image);
var g = Graphics.FromImage(bmp);
pic.Image = bmp;
string data = "FF CA 00 00 00";
string result = "0x" + String.Join(",0x", data.Split());
Console.WriteLine(result);
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace ConsoleApplication13
{
class Program
{
[DllImportAttribute("User32.dll")]
private static extern int FindWindow(String ClassName, String WindowName);
[DllImportAttribute("User32.dll")]
private static extern IntPtr SetForegroundWindow(int hWnd);
static void Main(string[] args)
{
int hWnd = FindWindow(null, "Калькулятор");
Console.WriteLine(hWnd);
if (hWnd > 0)
{
Console.WriteLine("К счастью, окно найдено...");
SetForegroundWindow(hWnd);
}
else
{
Console.WriteLine("Окно не найдено!");
}
Console.ReadKey();
}
}
}
static void Main(string[] args)
{
foreach (var p in Process.GetProcessesByName("calc"))
{
SetForegroundWindow(p.MainWindowHandle.ToInt32());
}
Console.ReadKey();
}
string path = @"1.dat";
int len = 1024 * 1024;
var rnd = new Random();
var sw = Stopwatch.StartNew();
var b = new byte[4];
Console.WriteLine("Test started");
using (var map = MemoryMappedFile.CreateFromFile(path, FileMode.Create, path, len))
{
using (var accessor = map.CreateViewAccessor())
{
for (var i = 0; i < len / 4; ++i)
{
b[0] = (byte)rnd.Next(0, 255);
b[1] = (byte)rnd.Next(0, 255);
b[2] = (byte)rnd.Next(0, 255);
b[3] = (byte)rnd.Next(0, 255);
accessor.WriteArray(rnd.Next(0, len / 4) * 4, b, 0, 4);
}
}
}
Console.WriteLine("Test end time - " + sw.ElapsedMilliseconds);
Console.ReadKey();
[Serializable]
public class MyClass
{
}
// данные, которые будем сериализовать
var data = new List<int> { 1, 2, 3 };
// выполняем сериализацию
// в MemoryStream (можно в любой Stream)
var bf = new BinaryFormatter();
var m = new MemoryStream();
bf.Serialize(m, data);
// курсор потока переводим в начало, т.к. мы работали с потоком выше
// если открывать новый поток, то это делать не обязательно
m.Position = 0;
// выполняем десериализацию данных из MemoryStream
var result = (List<int>)bf.Deserialize(m);
// выводим результат в консоль
result.ForEach(itm => Console.WriteLine(itm));
public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
{
if (info == null)
{
throw new ArgumentNullException("info");
}
info.AddValue("Ключ", "Значение");
info.AddValue("Ключ2", this.ИмяСвойства);
// и т.д.
}
// конструктор
protected ИмяКласса(SerializationInfo info, StreamingContext context)
{
if (info == null)
{
throw new ArgumentNullException("info");
}
this.Свойство = info.GetValue("Ключ", typeof(типДанных));
this.ИмяСвойства = (string)info.GetValue("Ключ2", typeof(string));
// и т.д.
}
[Serializable]
public class MyDictionary : Dictionary<string, object>, ISerializable
{
public MyDictionary() { }
protected MyDictionary(SerializationInfo info, StreamingContext context)
{
if (info == null)
{
throw new ArgumentNullException("info");
}
int count = info.GetInt32("Count"); // получаем число элементов
for (int i = 0; i < count; i++) // перебираем элементы
{
// получаем ключ и значение по индексу элемента
string key = info.GetString(String.Format("ItemKey{0}", i));
object value = info.GetValue(String.Format("ItemValue{0}", i), typeof(object));
// добавляем элемент в себя
this.Add(key, value);
}
}
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
if (info == null)
{
throw new ArgumentNullException("info");
}
// перебираем все элементы коллекции
int i = 0;
foreach (KeyValuePair<string, object> item in this)
{
// добавляем отдельно ключ и значение
info.AddValue(String.Format("ItemKey{0}", i), item.Key, typeof(string));
info.AddValue(String.Format("ItemValue{0}", i), item.Value);
i++;
}
// запоминаем, сколько всего элементов
info.AddValue("Count", this.Count);
}
}
// выполняем сериализацию коллекции
var data = new MyDictionary();
data.Add("Key", "Value");
data.Add("Key2", "Value2");
data.Add("Key3", 123);
var bf = new BinaryFormatter();
var m = new MemoryStream();
bf.Serialize(m, data);
// выполняем десериализацию
m.Position = 0;
var result = (MyDictionary)bf.Deserialize(m);
// выводим результат
foreach (var item in result)
{
Console.WriteLine("{0} = {1}", item.Key, item.Value);
}
[DisplayName("Сумма")]
public string Sum { get; set; }
public decimal SumDec
{
get
{
return Convertion.ToDecimal(this.Sum);
}
}
// создаем форму для Dropbox
var login = new DropboxLogin("5nkunr8uscwfoba", "n7x9icfwoe6dehq") { Owner = this };
// показываем форму
login.ShowDialog();
// если пользователь авторизован
if (login.IsSuccessfully)
{
// можем получить маркер доступа и использовать для работы с API Dropbox
MessageBox.Show("Маркер доступа: " + login.AccessToken.Value);
}
return x > value - 1000; // убираем лишнюю тысячу :)
return x + 1000 > value; // добавляем
var value = 0;
var value2 = value;
var predicates = new Predicate[]
{
x => x > value2
};
// using System.Linq.Expressions;
[TestMethod]
public void FunctionExtention_CombinePredicates_Should_Avoid_Closure()
{
var value = 0;
var iks = Expression.Parameter(typeof(int), "x");
var v = Expression.Constant(value, typeof(int)); // фиксируем значение value
var less = Expression.LessThan(v, iks);
var l = Expression.Lambda<Func<int, bool>>(less, new ParameterExpression[] { iks }).Compile();
var predicates = new Predicate<int>[]
{
x => l(x)
};
var result = FunctionExtentions.CombinePredicates(predicates);
value = 1000; // This should not affect the call above!
Assert.IsTrue(result(2));
Assert.IsTrue(result(5));
Assert.IsTrue(result(1000));
Assert.IsFalse(result(-20));
Assert.IsFalse(result(0));
Assert.IsFalse(result(-1000));
}
public static Predicate<T> CombinePredicates<T>(Predicate<T>[] predicates)
{
return item => predicates.All(predicate => predicate(item));
}
FileInfo f = new FileInfo(@"C:\example.dat");
using (FileStream fs = f.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
using (BinaryReader br = new BinaryReader(fs))
{
int bytesRead = 0;
byte[] buffer = new byte[256]; // размер буфера 256 единиц байт
StringBuilder result = new StringBuilder();
while ((bytesRead = br.Read(buffer, 0, buffer.Length)) != 0) // читаем не более 256 единиц байт в buffer
{
// из buffer следует извлекать не более bytesRead (в конце это число может быть меньше 255)
}
}
}
Response.AddHeader("Content-Disposition", "attachment; filename=123.gif");
[A-Za-z]{1}[0-9]{1}
^[A-Za-z]{1}[0-9]{1}$
^[A-Za-z]{1}\d+$
string[] arr = {"слово 1", "слово 2"};
return DbSet.Where(u => Array.IndexOf(arr, u.FirstName) != -1);
string[] arr = {"слово 1", "слово 2"};
return DbSet.Where(u => arr.Any(itm=> itm == u.FirstName));