class Program
{
static void Main(string[] args)
{
while (true)
{
Console.Clear();
double firstVal, secondVal = 0;
string act;
try
{
Console.WriteLine("Введите 1-е число: ");
firstVal = double.Parse(Console.ReadLine());
Console.WriteLine("Выберите операцию: '+' '-' '*' '/' 'x^' '√x'");
act = Console.ReadLine();
if (act == "exit")
{
Environment.Exit(0);
}
if (act == "√x")
{
Console.WriteLine(Math.Sqrt(firstVal));
}
else
{
Console.WriteLine("Введите 2-е число: ");
secondVal = double.Parse(Console.ReadLine());
}
}
catch (Exception)
{
Console.WriteLine("Введены недопустимые символы");
Console.ReadLine();
continue;
}
switch (act)
{
case "+":
Console.WriteLine(firstVal + secondVal);
break;
case "-":
Console.WriteLine(firstVal - secondVal);
break;
case "*":
Console.WriteLine(firstVal * secondVal);
break;
case "x^":
Console.WriteLine(Math.Pow(firstVal, secondVal));
break;
case "/":
if (secondVal == 0)
Console.WriteLine("Деление на ноль невозможно");
else
Console.WriteLine(firstVal / secondVal);
break;
default:
if (act != "√x") // проверка на допустимую операцию
Console.WriteLine("Ошибка! Неправильная операция.");
break;
}
Console.ReadLine();
Console.WriteLine("Введите 'exit' для выхода или нажмите Enter для продолжения.");
string? input = Console.ReadLine();
if (input == "exit")
{
Environment.Exit(0);
}
}
}
}
// Введите 1-е число:
// 5
// Выберите операцию: '+' '-' '*' '/' 'x^' '√x'
// /
// Введите 2-е число:
// 0
// Деление на ноль невозможно
//
// Введите 'exit' для выхода или нажмите Enter для продолжения.
// exit
//
// Введите 1-е число:
// 5
// Выберите операцию: '+' '-' '*' '/' 'x^' '√x'
// -
// Введите 2-е число:
// 3
// 2
//
// Введите 'exit' для выхода или нажмите Enter для продолжения.
// exit // gameObject.transform.position.Lerp(gameObject.transform.position, _pointTargetUIForAnim.transform.position, _animSpeed * Time.deltaTime);
gameObject.transform.position = Vector3.Lerp(gameObject.transform.position, _pointTargetUIForAnim.transform.position, _animSpeed * Time.deltaTime); На данный момент рассматриваю только вариант
Thread.Sleep
Подскажите пожалуйста как запускать программу каждые 15 мин. в цикле?
JsonSerializer.Deserialize<List<string>>, попробуйте так:using System.Text.Json;
namespace ReflTest;
internal class DesJson
{
public IEnumerable<string> RunDesir(string jsonString)
{
var result = JsonSerializer.Deserialize<List<string>>(jsonString) ?? Enumerable.Empty<string>();
return result.Select(item => item.ToString());
}
}
class Program
{
static void Main(string[] args)
{
string jsonString = "[\"1\",\"2\",\"3\",\"4\",\"5\"]";
DesJson desJson = new DesJson();
IEnumerable<string> result = desJson.RunDesir(jsonString);
result.ToList().ForEach(Console.WriteLine);
}
} волшебная функция
// The magic function.
static (int Index, int Value) MagicFunction(int[] array, int target)
{
int index = Array.IndexOf(array, target);
return index != -1 ? (index, array[index]) : (-1, -1);
}
// Используем.
int[] numbers = {2, 4, 6, 8, 10};
int t = 6;
(int i, int v) = MagicFunction(numbers, t);
Console.WriteLine(i != -1 ? $"Элемент {v} найден по индексу {i}." : $"Элемент {t} не найден в массиве.");
// Элемент 6 найден по индексу 2. Span<T>):byte[,] data2D = ...;
int width = data2D.GetLength(1);
// Создаем Span byte из data2D.
Span<byte> data1D = MemoryMarshal.CreateSpan(ref data2D[0, 0], data2D.Length);
// Передаем Span byte в функцию.
ProcessData(data1D, width); ; после блока с условием if (hw <= 6), это означает, что блок кода, который идет дальше (в фигурных скобках), будет выполнен независимо от результата этого условия:// false
if (1 > 2);
// Но код все равно будет выполнен:
{
print("Welcome!");
}if (hw <= 6)
{
print("Welcome!");
}
// Или так
if (hw <= 6) print("Welcome!"); Как сделать, чтобы браузер, открытый при помощи Selenium работал как с мобильного телефона?
У одного веб приложения есть проверка на текущее устройство.
Server=localhost
Reference containers by name, not IP, whenever possible. Otherwise you’ll need to constantly update the IP address you use.
Port=6002
"Postgres": "Server=localhost; Port=6002; Database=post; User ID=postgres; Password=passwd; Pooling=true"
"Postgres": "Server=postgres_db; Port=5432; Database=post; User ID=postgres; Password=passwd; Pooling=true"version: '3.8'
networks:
postgres-network:
driver: bridge
services:
gchain.posts.api:
image: gchain.posts.api
build:
context: .
dockerfile: GChain.Posts.Api/Dockerfile
ports:
- "80:8080"
networks:
- postgres-network
depends_on:
- postgres_db
postgres_db:
container_name: postgres_post
image: postgres:latest
environment:
POSTGRES_USER: ${POSTGRES_USER:-postgres}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-passwd}
POSTGRES_DB: post
volumes:
- postgres-data:/var/lib/postgresql/data
ports:
- "6002:5432"
networks:
- postgres-network
restart: unless-stopped
volumes:
postgres-data: using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main(string[] args)
{
string text = "This is the great city of Sevsar, the harbor of humanity";
string[] keywords = { "great", "harbor" };
HighlightKeywords(text, keywords, ConsoleColor.Red);
Console.WriteLine();
}
public static void HighlightKeywords(string text, string[] keywords, ConsoleColor highlightColor)
{
string pattern = $@"\b({string.Join("|", keywords)})\b";
MatchCollection matches = Regex.Matches(text, pattern, RegexOptions.IgnoreCase);
int lastIndex = 0;
foreach (Match match in matches)
{
Console.Write(text.Substring(lastIndex, match.Index - lastIndex));
Console.ForegroundColor = highlightColor;
Console.Write(match.Value);
Console.ResetColor();
lastIndex = match.Index + match.Length;
}
Console.Write(text.Substring(lastIndex));
}
}
Как правильно собрать проект таким образом чтобы у других пользователей не было доступа на исходный код.
не говорю чтобы проект должен состоит из одного exe файла так как думаю это повлияет на оптимизацию самой приложении.
using System.IO.Compression;
string zipPath = @"path/zip.zip";
string unZipPath = @"path/unzip-dir";
string dirNameInZip = "dir-name";
// Проверяем наличие архива
if (!File.Exists(zipPath))
{
throw new FileNotFoundException("Ошибка, архив не найден.", zipPath);
}
// Создаем выходную директорию, если она не существует
Directory.CreateDirectory(unZipPath);
// Получаем архив
using var archive = ZipFile.OpenRead(zipPath);
// Ищем нужную директорию в архиве
var folder = archive.Entries.FirstOrDefault((e) =>
e.FullName.StartsWith(dirNameInZip + "/") && e.FullName.Length > dirNameInZip.Length + 1);
if (folder == null)
{
throw new DirectoryNotFoundException($"Ошибка, директория '{dirNameInZip}' в архиве не найдена.");
}
// Извлекаем директорию со всеми данными
foreach (var entry in archive.Entries.Where((e) => e.FullName.StartsWith(folder.FullName)))
{
string relativePath = entry.FullName[(folder.FullName.Length + 1)..];
string filePath = Path.Combine(unZipPath, relativePath);
// Создание вложенных директорий, если требуется
string? directoryPath = Path.GetDirectoryName(filePath);
if (!string.IsNullOrEmpty(directoryPath))
{
Directory.CreateDirectory(directoryPath);
}
// Извлечение файлов с перезаписью
entry.ExtractToFile(filePath, overwrite: true);
} # Build Core lib
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS core-build
WORKDIR /src
COPY ["../Core/Core.csproj", "./Core/"]
RUN dotnet restore "./Core/Core.csproj"
COPY ["../Core/", "./Core/"]
RUN dotnet build "./Core/Core.csproj" -c Release -o /app/core
# Build API proj
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS api-build
WORKDIR /src
COPY ["Service/API/API.csproj", "./Service/API/"]
RUN dotnet restore "./Service/API/API.csproj"
COPY ["Service/API/", "./Service/API/"]
COPY --from=core-build /app/core /lib
RUN dotnet build "./Service/API/API.csproj" -c Release -o /app/service
# Create final image
FROM mcr.microsoft.com/dotnet/aspnet:8.0
WORKDIR /app
COPY --from=api-build /app/service .
ENTRYPOINT ["dotnet", "API.dll"] import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
try:
driver.get('https://dzen.ru/')
iframe = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, "iframe.dzen-search-arrow-common__frame"))
)
driver.switch_to.frame(iframe)
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, "input.arrow__input.mini-suggest__input"))
)
print(element) # <selenium.webdriver.remote.webelement.WebElement (session="5e3642980c7d8fcb1b687f3c9a716998", element="f.15CF8DCC914EA871801192FF570A26AF.d.A418C847E39359367688E91E0850A734.e.5")>
element.send_keys("Найдено!")
time.sleep(20)
finally:
driver.quit()
Если не сложно, добавьте пример самого графика. Как добавить туда значения - я как-нибудь доковыляю сам.