Compare commits

...

5 Commits

Author SHA1 Message Date
Timon Erhart
c5f0cbac32
Merge 6016dcba8c into b30134148f 2024-12-04 17:42:08 -07:00
Boris Verkhovskiy
b30134148f [c/*] remove compile arg preamble
All checks were successful
Trigger site build / deploy (push) Has been skipped
CI / lint (push) Successful in 15s
2024-12-04 16:09:45 -07:00
Timon Erhart
6016dcba8c fix line lenght 2024-12-03 17:53:42 +00:00
Timon Erhart
813969f898 fix format 2024-12-03 15:36:47 +00:00
Timon Erhart
a44f874f78 finish first version of csv 2024-12-03 15:19:30 +00:00
6 changed files with 95 additions and 63 deletions

View File

@ -19,16 +19,6 @@ C is the lowest-level language most programmers will ever use, but
it more than makes up for it with raw speed. Just be aware of its manual
memory management and C will take you as far as you need to go.
> **About compiler flags**
>
> By default, gcc and clang are pretty quiet about compilation warnings and
> errors, which can be very useful information. Explicitly using stricter
> compiler flags is recommended. Here are some recommended defaults:
>
> `-Wall -Wextra -Werror -O2 -std=c99 -pedantic`
>
> For information on what these flags do as well as other flags, consult the man page for your C compiler (e.g. `man 1 gcc`) or just search online.
```c
// Single-line comments start with // - only available in C99 and later.

95
csv.html.markdown Normal file
View File

@ -0,0 +1,95 @@
---
language: CSV
filename: learncsv.csv
contributors:
- [Timon Erhart, 'https://github.com/turbotimon/']
---
CSV (Comma-Separated Values) is a lightweight file format used to store tabular
data in plain text, designed for easy data exchange between programs,
particularly spreadsheets and databases. Its simplicity and human readability
have made it a cornerstone of data interoperability. It is often used for
moving data between programs with incompatible or proprietary formats.
While RFC 4180 provides a standard for the format, in practice, the term "CSV"
is often used more broadly to refer to any text file that:
- Can be interpreted as tabular data
- Uses a delimiter to separate fields (columns)
- Uses line breaks to separate records (rows)
- Optionally includes a header in the first row
```csv
Name, Age, DateOfBirth
Alice, 30, 1993-05-14
Bob, 25, 1998-11-02
Charlie, 35, 1988-03-21
```
**Delimiters for Rows and Columns**
Rows are typically separated by line breaks (`\n` or `\r\n`), while columns
(fields) are separated by a specific delimiter. Although commas are the most
common delimiter for fields, other characters, such as semicolons (`;`), are
commonly used in regions where commas are decimal separators (e.g., Germany).
Tabs (`\t`) are also used as delimiters in some cases, with such files often
referred to as "TSV" (Tab-Separated Values).
Example using semicolons as delimiter and comma for decimal separator:
```csv
Name; Age; Grade
Alice; 30; 50,50
Bob; 25; 45,75
Charlie; 35; 60,00
```
**Data Types**
CSV files do not inherently define data types. Numbers and dates are stored as
plain text, and their interpretation depends on the software importing the
file. Typically, data is interpreted as follows:
```csv
Data, Comment
100, Interpreted as a number (integer)
100.00, Interpreted as a number (floating-point)
2024-12-03, Interpreted as a date or a string (depending on the parser)
Hello World, Interpreted as text (string)
"1234", Interpreted as text instead of a number
```
**Quoting Strings and Special Characters**
Quoting strings is only required if the string contains the delimiter, special
characters, or otherwise could be interpreted as a number. However, it is
often considered good practice to quote all strings to enhance readability and
robustness.
```csv
Quoting strings examples,
Unquoted string,
"Optionally quoted string (good practice)",
"If it contains the delimiter, it needs to be quoted",
"Also, if it contains special characters like \n newlines or \t tabs",
"The quoting "" character itself typically is escaped by doubling the quote ("")",
"or in some systems with a backslash \" (like other escapes)",
```
However, make sure that for one document, the quoting method is consistent.
For example, the last two examples of quoting with either "" or \" would
not be consistent and could cause problems.
**Encoding**
Different encodings are used. Most modern CSV files use UTF-8 encoding, but
older systems might use others like ASCII or ISO-8859.
If the file is transferred or shared between different systems, it is a good
practice to explicitly define the encoding used, to avoid issues with
character misinterpretation.
### More Resources
+ [Wikipedia](https://en.wikipedia.org/wiki/Comma-separated_values)
+ [RFC 4180](https://datatracker.ietf.org/doc/html/rfc4180)

View File

@ -14,23 +14,6 @@ Die Geschwindigkeit von C ist enorm, allerdings muss man sich stets der
manuellen Speicherverwaltung bewusst sein.
> **Über Compiler Optionen**
>
> Standardmäßig sind `gcc` und `clang` ziemlich ruhig bezüglich Warnungen und
> Fehlern, obwohl dies sehr nützliche Informationen sein können. Es wird
> empfohlen, strengere Compiler Optionen zu verwenden. Hier sind einige empfohlene
> Standards:
> `-Wall -Wextra -Werror -O2 -std=c99 -pedantic`
>
> Da gewisse Optionen (insbesondere der C-Standard) sehr stark vom Projekt
> abhängen, lohnt es sich, wenn die unterschiedlichen Optionen genauer
> angeschaut werden. Eine Übersicht über die Compiler-Optionen findet man unter
> [diesem](https://stackoverflow.com/questions/3375697/useful-gcc-flags-for-c) Stackoverflow-Beitrag.
>
> Für weitere Informationen, was diese und weitere Optionen genau machen,
> sollte die Man-Page des C-Compilers aufgerufen werden (z.B. `man 1 gcc`).
> Alternativ kann auch online nach den unterschiedlichen Optionen gesucht werden.
```c
// einzeilige Kommentare starten mit // - nur in C99 und später vorhanden.

View File

@ -19,19 +19,6 @@ lang: fr-fr
Le C est le langage de plus bas niveau que la plupart des programmeurs seront
amenés à utiliser, mais ceci est largement conpensé par sa vitesse brute.
> **À propos des options de compilation**
>
> Par défaut, gcc et clang sont assez silencieux sur les avertissements et
> les erreurs de compilation, qui peuvent être des informations très utiles.
> L'utilisation explicite d'options de compilation plus strictes est recommandée.
> Voici quelques valeurs par défaut recommandées:
>
> `-Wall -Wextra -Werror -O2 -std=c99 -pedantic`
>
> Pour plus d'informations sur ce que font ces options ainsi que sur d'autres,
> vous pouvez consulter la page du manuel de votre compilateur C (par exemple `man 1 gcc`)
> ou recherchez simplement en ligne.
```c
// Les commentaires sur une ligne commencent par // - valable seulement pour C99 et plus tard.

View File

@ -23,17 +23,6 @@ Cはほとんどのプログラマが最低水準言語として使われてい
プログラマーの手で管理する必要があり、これが初学者を苦しめる要素となるが、うまく使えば、
ロボットなどで実行速度やメモリの使用率などを大幅に最適化できる。
> **コンパイラフラグについて**
>
> gccやclangなどのコンパイラではデフォルトでデバッグに有益なエラーや警告を表示しない
> 設定になっています。なので、それらのエラーを詳細に、厳しく表示させるフラグと共に
> 実行することをおすすめします。下記はそのフラグの例です:
>
> `-Wall -Wextra -Werror -O2 -std=c99 -pedantic`
>
> このようなフラグの詳細については、オンライン検索にかけるか、
> コンパイラのドキュメンテーションを読んでください。(Linuxなら`man 1 gcc`等)
```c
// 行コメントは//で始まる (C99より前のC標準では使えない)

View File

@ -19,18 +19,6 @@ lang: uk-ua
C це імовірно найбільш низькорівнева мова, яку будуть використовувати більшість програмістів. Проте, вона компенсує це не тільки швидкістю виконання. Як тільки ви оціните її можливість ручного управління пам'яттю, С зможе відвести саме в ті місця, в які вам потрібно було потрапити.
> **Дещо про прапори компілятора**
>
> За замовчуванням, gcc та clang досить тихо інформують про попередження та помилки
> при компіляції, хоч це і може бути дуже корисною інформацією. Тому рекомендується
> використовувати більш вимогливий компілятор. Ось кілька рекомендацій:
>
> `-Wall -Wextra -Werror -O2 -std=c99 -pedantic`
>
> За інформацією про ці та інші прапори зверніться до головної сторінки man вашого
> компілятора C (наприклад, `man 1 gcc`) або ж просто заґуґліть.
```c
// Однорядкові коментарі починаються з //
// Проте вони з'явились тільки після С99.