string value = "ab+0.1973-1.1";
string result = Regex.Replace(value, @"(\.\d{2})\d+", "$1");
string inputString = "ab+0.1973-1.1";
var result = new StringBuilder();
bool hasDot = false;
int digits = 0;
foreach(char ch in inputString)
{
if (char.IsDigit(ch) && hasDot)
{
digits++;
}
else
{
digits = 0;
hasDot = (ch == '.');
}
if (digits <= 2)
{
result.Append(ch);
}
}
Console.WriteLine(result.ToString());
#if NET40
// код для .NET 4.0
#else
// код для остальных версий
#enif
var url = new Uri("http://site.com/index.php?199|¶m=1", true);
// ...
var response = wb.UploadValues(url, "POST", data);
using (var client = new HttpClient())
{
var url = new Uri("http://site.com/index.php?199|¶m=1", true);
var data = new StringBuilder();
data.AppendLine("abc=199|");
using (var content = new StringContent(data.ToString(), Encoding.UTF8, "application/x-www-form-urlencoded"))
{
using (var request = new HttpRequestMessage(HttpMethod.Post, url))
{
request.Content = content;
using (var response = client.SendAsync(request).Result)
{
response.EnsureSuccessStatusCode();
// var result = await response.Content.ReadAsStringAsync();
var result = response.Content.ReadAsStringAsync().Result;
}
}
}
}
WorkTimeLabel.Content = $"Рабочее время: {DateTime.Now.Subtract(timeStart).ToString(@"hh\:mm")}";
WorkTimeLabel.Content = "Рабочее время: " +
(DateTime.Now - timeStart).ToString(@"d\д\ hh\:mm").TrimStart('0', 'д').Trim();
static Action lastAction = null;
static void AnyAction()
{
Console.WriteLine("Выполняю какое-то действие. Не отключайтесь...");
Thread.Sleep(3000);
}
static void Repeat()
{
Console.WriteLine("Хотите повторить? [Д/н]");
if (char.ToUpper(Console.ReadKey().KeyChar) == 'Д')
{
Console.WriteLine();
lastAction();
Repeat();
}
}
static void Main(string[] args)
{
lastAction = AnyAction;
lastAction();
Repeat();
}
static Queue<Action> actions = new Queue<Action>();
static void AnyAction()
{
Console.WriteLine("Выполняю какое-то действие. Не отключайтесь...");
Thread.Sleep(3000);
}
static void Main(string[] args)
{
actions.Enqueue(AnyAction);
while (actions.Count > 0)
{
actions.Dequeue()();
Console.WriteLine("Хотите повторить? [Д/н]");
if (char.ToUpper(Console.ReadKey().KeyChar) == 'Д')
{
Console.WriteLine();
actions.Enqueue(AnyAction);
}
}
}
treeView1.Items.Clear();
GetFiles("C:/Windows/Microsoft.NET", null);
private void GetFiles(string path, TreeViewItem parent)
{
var node = new TreeViewItem() { Header = System.IO.Path.GetFileName(path) };
if (parent == null)
{
treeView1.Items.Add(node);
}
else
{
parent.Items.Add(node);
}
var attr = System.IO.File.GetAttributes(path);
if (attr.HasFlag(System.IO.FileAttributes.Directory))
{
var directories = System.IO.Directory.GetDirectories(path);
foreach (var dir in directories)
{
GetFiles(dir, node);
}
var files = System.IO.Directory.GetFiles(path);
foreach (var file in files)
{
node.Items.Add(System.IO.Path.GetFileName(file));
}
}
}
var xml = @"<head>
<block1>
<block_header></block_header>
<block_picture></block_picture>
<block_text></block_text>
</block1>
<block2></block2>
<block3>
<block_header></block_header>
<block_picture></block_picture>
<block_text></block_text>
</block3>
</head>";
var doc = new XmlDocument();
doc.LoadXml(xml);
var head = doc.SelectSingleNode("/head");
var list = new List<string>();
foreach (XmlNode node in head.ChildNodes)
{
list.Add(node.Name);
// node.InnerXml - содержимое узла
Console.WriteLine("{0}={1}", node.Name, node.InnerXml);
}
// в коллекции list будет список имен дочерних узлов корневого узла
var doc = new XmlDocument();
// определение переменной xml см. в предыдущем коде
doc.LoadXml(xml);
// создаем стек
var stack = new Stack<XmlNode>();
// добавляем в стек корневой элемент
stack.Push(doc.SelectSingleNode("/head"));
// var list = new List<string>();
// перебираем все элементы стека
while(stack.Count > 0)
{
// берем верхний элемент и удаляем его и стека
var node = stack.Pop();
// выводим
// если требуется, можно добавить в коллекцию
// list.Add(node.Name);
Console.WriteLine("Node: {0}, childs: {1}", node.Name, node.ChildNodes.Count);
Console.WriteLine(node.InnerXml);
// если есть дети, добавляем их в стек
if (node.ChildNodes.Count > 0)
{
// берем с конца, чтобы сохранить порядок
for (int i = node.ChildNodes.Count - 1; i >= 0; --i)
{
stack.Push(node.ChildNodes[i]);
}
}
}
using System.Xml;
var xml = @"<head>
<block1></block1>
<block2></block2>
<block3></block3>
</head>";
var doc = new XmlDocument();
doc.LoadXml(xml);
var node = doc.SelectSingleNode("/head/block3");
if (node != null)
{
Console.WriteLine("Узел существует!");
}
else
{
Console.WriteLine("Узел не найден...");
}
using System.Net.Http;
using System.Text;
using (var client = new HttpClient())
{
var url = "https://dns.api.gandi.net/api/v5/zones/93cc9312-a214-408b-a75b-9d4172984746/records";
// можно просто строку (string) сделать, как будет удобно
var data = new StringBuilder();
data.AppendLine("www IN A 192.168.0.1");
data.AppendLine(" IN A 192.168.0.2");
data.AppendLine(" IN A 192.168.0.2");
data.AppendLine("@ IN MX 10 spool.mail.gandi.net.");
using (var content = new StringContent(data.ToString(), Encoding.UTF8, "text/plain"))
{
// HttpMethod.Post, если нужен POST
using (var request = new HttpRequestMessage(HttpMethod.Put, url))
{
// request.Headers.Authorization = new AuthenticationHeaderValue("", "");
request.Headers.Add("X-Api-Key", "$APIKEY");
request.Content = content;
// using (var response = await client.SendAsync(request)
using (var response = client.SendAsync(request).Result)
{
// выбросить исключение, если сервер вернул ошибку
response.EnsureSuccessStatusCode();
// var result = await response.Content.ReadAsStringAsync();
var result = response.Content.ReadAsStringAsync().Result;
// в result будет ответ сервера
}
}
}
}
<Button Content="Ok" HorizontalAlignment="Left" VerticalAlignment="Top"
Width="75" Margin="0,75,0,0"
Click="Button_Click"
/>
<WrapPanel Name="Buttons" Orientation="Horizontal">
<Button Name="Button1" Content="Button" HorizontalAlignment="Left"
VerticalAlignment="Top" Width="75"
/>
<Button Name="Button2" Content="Button" HorizontalAlignment="Left"
VerticalAlignment="Top" Width="75"
/>
<Button Name="Button3" Content="Button" HorizontalAlignment="Left"
VerticalAlignment="Top" Width="75"
/>
<Button Name="Button4" Content="Button" HorizontalAlignment="Left"
VerticalAlignment="Top" Width="75"
/>
</WrapPanel>
private void Button_Click(object sender, RoutedEventArgs e)
{
Buttons.Visibility = Visibility.Hidden; // Visibility.Visible
/*
if (Buttons.Visibility == Visibility.Hidden)
{
Buttons.Visibility = Visibility.Visible;
}
else
{
Buttons.Visibility = Visibility.Hidden;
}
*/
}
new System.Media.SoundPlayer(@"c:\filename.wav").Play();
var searcher = new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_SoundDevice");
var devices = searcher.Get();
foreach (var device in devices)
{
Console.WriteLine(device.GetPropertyValue("Caption").ToString());
}
// ...
var waveReader = new NAudio.Wave.WaveFileReader(fileName);
var waveOut = new NAudio.Wave.WaveOut();
waveOut.DeviceNumber = deviceNumber;
var output = new NAudio.Wave.DirectSoundOut();
output = waveOut;
output.Init(waveReader);
output.Play();
Пользователь: Привет!
Бот: Привет, %username%! Чем я могу помочь?
// предполагается, что следующий ответ пользователя будет на вопрос, "чем я могу помочь?"
// записываем в базу отметку для текущего conversationId, например ставим next=1
Пользователь: Как обработать ответ telegram bot?
// бот смотрит в базе, что поле next равно 1, значит нужно найти ответ на вопрос пользователя
Бот: Секундочку, сейчас поищу на Toster...
Бот: Посмотри здесь: https://toster.ru/q/540828#answer_1235905
Пользователь: Спасибо!
Бот: Без проблем, обращайся!
Пользователь: Хочу купить билет в Испанию!
Бот: Отлично! В какой город?
// next=2
Пользователь: Мадрид
// if (next == 2) { это имя города, проверить название города по базе, если город найден }
Бот: На какую дату?
// next=3
Пользователь: 25.06.2018
// if (next == 3) { это дата, проверить правильность указания даты, если все правильно }
Бот: Отлично! Сейчас что-нибудь подберу...
...
from myRow in dt.AsEnumerable()
where myRow["Цена"] != DBNull.Value
orderby double.Parse(myRow["Цена"])
select myRow;
public class HistoryItem
{
public double X { get; set; }
public double Y { get; set; }
public string Operation { get; set; }
// предполагается, что журнал подразумевает хранение истории вычислений,
// и хотя можно повторно провести вычисления, в журнале такого по идее быть не должно,
public double Result { get; set; }
}
// ...
public static List<HistoryItem> History = new List<HistoryItem>();
// ...
History.Add(new HistoryItem { X = 123, Y = 456, Operation = "+", Result = 579 });
History.Add(new HistoryItem { X = 5, Y = 5, Operation = "*", Result = 25 });
public static List<string> History = new List<string>();
// ...
History.Add("2 * 2 = 4");
History.Add("3 + 4 = 7");
using System.Collections.Concurrent;
// ...
public static ConcurrentBag<string> History = new ConcurrentBag<string>();
// ...
History.Add("123 + 345 = 468");
History.Add("7 * 7 = 49");
// добавить
System.IO.File.AppendText("history.log", "5 * 5 = 25");
// прочитать историю
// System.IO.File.ReadAllText("history.log");
var historyData = window.localStorage.getItem('history');
var history = historyData ? JSON.parse(historyData) : [];
history.push('1 + 1 = 2');
history.push('2 + 2 = 4');
history.push('4 + 4 = 8');
window.localStorage.setItem('history', JSON.stringify(history));