Здравствуйте, Osaka, Вы писали:
O>Для данных человечество придумало Excel.
Это уже через инструмент. А иногда нужно чтобы во прямо текст в чистом виде с помощью простейшего текстового редактора (или в консоли) нужно было читать. И почти все данные верхнего уровня (HTML, CSS, JSON, XML) — они передаются в человеко-читаемом виде, хотя могли бы юзать бинарный формат.
O>Недостаточную человекочитаемость формата нужно компенсировать инструментами.
Но чтобы легче было писать эти инструменты — разработчику лучше человеко-читаемый а не бинарный формат.
O>Сделать как в редакторе xaml, сверху список таблиц в файле + данные выбранной, снизу xml/жсон/хзчто или вообще бинарник,
Сейчас вопрос о то что снизу — какой формат там удобнее. XML — банально больше лишних символов, что утомляет.
Вот, для примера, что вам удобнее читать:
<Window x:Class="ExampleApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Example" Height="300" Width="400">
<Grid Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<!-- Заголовок -->
<TextBlock Text="Введите текст:" Grid.Row="0" Margin="0,0,0,10" />
<!-- Поле ввода текста -->
<TextBox Name="InputTextBox" Grid.Row="1" Margin="0,0,0,10" />
<!-- Кнопка -->
<Button Content="Показать текст" Grid.Row="2" Click="OnButtonClick" />
<!-- Вывод текста -->
<TextBlock Name="OutputTextBlock" Grid.Row="3" Margin="0,10,0,0" Foreground="Blue" />
</Grid>
</Window>
using System.Windows;
namespace ExampleApp
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void OnButtonClick(object sender, RoutedEventArgs e)
{
// Получение текста из TextBox и вывод его в TextBlock
OutputTextBlock.Text = InputTextBox.Text;
}
}
}
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: const Text("Example")),
body: const InputWidget(),
),
);
}
}
class InputWidget extends StatefulWidget {
const InputWidget({super.key});
@override
State<InputWidget> createState() => _InputWidgetState();
}
class _InputWidgetState extends State<InputWidget> {
final TextEditingController _controller = TextEditingController();
String _displayText = "";
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.all(10),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// Заголовок
const Text(
"Введите текст:",
style: TextStyle(fontSize: 16),
),
const SizedBox(height: 10),
// Поле ввода текста
TextField(
controller: _controller,
decoration: const InputDecoration(
border: OutlineInputBorder(),
hintText: "Введите что-то",
),
),
const SizedBox(height: 10),
// Кнопка
ElevatedButton(
onPressed: () {
setState(() {
_displayText = _controller.text;
});
},
child: const Text("Показать текст"),
),
const SizedBox(height: 10),
// Вывод текста
Text(
_displayText,
style: const TextStyle(fontSize: 16, color: Colors.blue),
),
],
),
);
}
}