c# sql

using System;
using System.Data.SqlClient;

class Program
{
    static void Main()
    {
        string connectionString = "Your Connection String Here";
        string checkCountQuery = "SELECT COUNT(*) FROM navigation";
        string deleteQuery = @"
            DELETE FROM navigation
            WHERE navigation_id IN (
                SELECT navigation_id 
                FROM navigation 
                ORDER BY [YourOrderColumn] 
                LIMIT (SELECT COUNT(*) - 10 FROM navigation)
            )";

        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();

            // テーブルの行数を確認
            SqlCommand checkCountCommand = new SqlCommand(checkCountQuery, connection);
            int rowCount = (int)checkCountCommand.ExecuteScalar();

            if (rowCount > 10)
            {
                // 古いデータを削除
                SqlCommand deleteCommand = new SqlCommand(deleteQuery, connection);
                deleteCommand.ExecuteNonQuery();
            }
        }
    }
}
// `navigation_id` は削除する navigation レコードの ID です。
string deleteManeuverQuery = "DELETE FROM maneuver WHERE navigation_id = @navigation_id";
string deleteNavigationQuery = "DELETE FROM navigation WHERE id = @navigation_id";

using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();

    SqlCommand deleteManeuverCommand = new SqlCommand(deleteManeuverQuery, connection);
    deleteManeuverCommand.Parameters.AddWithValue("@navigation_id", navigationId);
    deleteManeuverCommand.ExecuteNonQuery();

    SqlCommand deleteNavigationCommand = new SqlCommand(deleteNavigationQuery, connection);
    deleteNavigationCommand.Parameters.AddWithValue("@navigation_id", navigationId);
    deleteNavigationCommand.ExecuteNonQuery();
}
ALTER TABLE maneuver
ADD CONSTRAINT FK_maneuver_navigation
FOREIGN KEY (navigation_id) REFERENCES navigation(id) ON DELETE CASCADE;
#include <iostream>
#include <vector>
#include <algorithm> // std::sort, std::unique を使用するために必要

struct gridPos {
    int x;
    int y;

    bool operator==(const gridPos& other) const {
        return x == other.x && y == other.y;
    }

    bool operator<(const gridPos& other) const {
        return x < other.x || (x == other.x && y < other.y);
    }
};

int main() {
    std::vector<LaNode> nodes = {
        // ... ノードのデータをここに追加 ...
    };

    // gridPos のみを抽出する
    std::vector<gridPos> allPositions;
    for (const auto& node : nodes) {
        allPositions.push_back(node.pos);
    }

    // 位置をソートする
    std::sort(allPositions.begin(), allPositions.end());

    // 重複を見つける
    std::vector<gridPos> duplicates;
    for (size_t i = 1; i < allPositions.size(); ++i) {
        if (allPositions[i] == allPositions[i - 1]) {
            // 重複を避けるために、前回と同じ要素でないことを確認
            if (duplicates.empty() || duplicates.back() != allPositions[i]) {
                duplicates.push_back(allPositions[i]);
            }
        }
    }

    // 重複している位置を出力
    for (const auto& pos : duplicates) {
        std::cout << "Duplicate position: (" << pos.x << ", " << pos.y << ")\n";
    }

    return 0;
}
bool compareGridPos(const gridPos& a, const gridPos& b) {
    if (a.x < b.x) return true;
    if (a.x > b.x) return false;
    return a.y < b.y;
}

// すべての位置をソート
std::sort(allPositions.begin(), allPositions.end(), compareGridPos);
#include <iostream>
#include <vector>

struct gridPos {
    int x;
    int y;
};

const int MAX_X = 100; // X の最大値
const int MAX_Y = 100; // Y の最大値

std::vector<gridPos> findDuplicates(const std::vector<gridPos>& positions) {
    std::vector<std::vector<int>> count(MAX_X, std::vector<int>(MAX_Y, 0));
    std::vector<gridPos> duplicates;

    // 各位置の出現回数をカウント
    for (const auto& pos : positions) {
        if (pos.x >= 0 && pos.x < MAX_X && pos.y >= 0 && pos.y < MAX_Y) {
            count[pos.x][pos.y]++;
        }
    }

    // 出現回数が2以上の位置を見つける
    for (int x = 0; x < MAX_X; ++x) {
        for (int y = 0; y < MAX_Y; ++y) {
            if (count[x][y] > 1) {
                duplicates.push_back({x, y});
            }
        }
    }

    return duplicates;
}

int main() {
    std::vector<gridPos> positions = {
        // ... ここに gridPos の要素を追加 ...
    };

    std::vector<gridPos> duplicates = findDuplicates(positions);

    // 重複している位置を出力
    for (const auto& pos : duplicates) {
        std::cout << "Duplicate position: (" << pos.x << ", " << pos.y << ")\n";
    }

    return 0;
}
// ベクターをソート
std::sort(values.begin(), values.end());

// lower_bound を使用して value 以上の最小の要素を探す
auto lower = std::lower_bound(values.begin(), values.end(), value);

// lower が最初の要素を指している場合は、それが最も近い値です
if (lower == values.begin()) {
    return *lower;
}

// lower が最後の要素の後ろを指している場合は、最後の要素が最も近い値です
if (lower == values.end()) {
    return *(--lower);
}

// lower とその一つ前の要素との距離を比較
auto prev = lower - 1;
if ((value - *prev) <= (*lower - value)) {
    return *prev;
} else {
    return *lower;
}
import os
from pathlib import Path
from datetime import datetime

# フォルダパスを指定
folder_path = 'your/folder/path'

# 指定フォルダ内のmp4ファイルのパスを取得し、作成日時でソート
mp4_files = sorted(Path(folder_path).glob('*.mp4'), key=lambda x: x.stat().st_ctime)

# 結果を表示
for file in mp4_files:
    print(f"{file} - Created: {datetime.fromtimestamp(file.stat().st_ctime)}")


# テキストファイルのパス
text_file_path = 'your/text/file.txt'

# テキストファイルを開き、改行ごとにリストに格納
with open(text_file_path, 'r', encoding='utf-8') as file:
    lines = file.read().splitlines()

# リストの各要素を円マークで分割し、最後の要素のみを取得
processed_lines = [line.split('\\')[-1] for line in lines]

# 結果を表示
for line in processed_lines:
    print(line)


import os
from pathlib import Path

# ステップ 1: mp4ファイルのパスを取得
folder_path = 'your/folder/path'  # フォルダパスを指定
mp4_files = sorted(Path(folder_path).glob('*.mp4'), key=lambda x: x.stat().st_ctime)

# ステップ 2: ファイル名に使用するリストをテキストファイルから取得
text_file_path = 'your/text/file.txt'
with open(text_file_path, 'r', encoding='utf-8') as file:
    new_names = file.read().splitlines()

# ステップ 3: mp4ファイルのファイル名を変更
for mp4_file, new_name in zip(mp4_files, new_names):
    # 新しいファイルパスを生成
    new_file_path = mp4_file.parent / f"{new_name}.mp4"
    # ファイル名変更を実行
    mp4_file.rename(new_file_path)
    print(f"Renamed {mp4_file} to {new_file_path}")
タイトルとURLをコピーしました