Просмотр исходного кода

Merge pull request 'Rectify 106 and 107 patches' (#219) from dustdfg/exercises:patch_rectify into main

Reviewed-on: https://codeberg.org/ziglings/exercises/pulls/219
Chris Boesch 5 месяцев назад
Родитель
Сommit
7ce659f7fa
2 измененных файлов с 19 добавлено и 122 удалено
  1. 10 81
      patches/patches/106_files.patch
  2. 9 41
      patches/patches/107_files2.patch

+ 10 - 81
patches/patches/106_files.patch

@@ -1,63 +1,16 @@
---- exercises/106_files.zig	2024-11-09 20:33:07.455580904 +0100
-+++ answers/106_files.zig	2024-11-09 20:33:30.394785215 +0100
-@@ -1,22 +1,22 @@
- //
- // Until now, we've only been printing our output in the console,
--// which is good enough for fighting aliens and hermit bookkeeping.
-+// which is good enough for fighting alien and hermit bookkeeping.
- //
--// However, many other tasks require some interaction with the file system,
-+// However, many other task require some interaction with the file system,
- // which is the underlying structure for organizing files on your computer.
- //
--// The file system provides a hierarchical structure for storing files
--// by organizing them into directories, which hold files and other directories,
--// thus creating a tree structure that can be navigated.
-+// The File System provide a hierarchical structure for storing files
-+// by organizing files into directories, which hold files and other directories,
-+// thus creating a tree structure for navigating.
- //
--// Fortunately, the Zig Standard Library provides a simple API for interacting
--// with the file system, see the detail documentation here:
-+// Fortunately, the Zig Standard Library provide a simple api for interacting
-+// with the file system, see the detail documentation here
- //
- // https://ziglang.org/documentation/master/std/#std.fs
- //
--// In this exercise, we'll try to:
--//   - create a new directory,
--//   - open a file in the directory,
-+// In this exercise, we'll try to
-+//   - create a new directory
-+//   - open a file in the directory
- //   - write to the file.
- //
- // import std as always
-@@ -27,42 +27,42 @@
-     const cwd: std.fs.Dir = std.fs.cwd();
- 
-     // then we'll try to make a new directory /output/
--    // to store our output files.
-+    // to put our output files.
-     cwd.makeDir("output") catch |e| switch (e) {
--        // there is a chance you might want to run this
-+        // there are chance you might want to run this
-         // program more than once and the path might already
--        // have been created, so we'll have to handle this error
-+        // been created, so we'll have to handle this error
+--- exercises/106_files.zig	2025-03-13 15:26:59.532367792 +0200
++++ answers/106_files.zig	2025-03-14 22:04:52.243435159 +0200
+@@ -35,7 +35,7 @@
          // by doing nothing
          //
          // we want to catch error.PathAlreadyExists and do nothing
 -        ??? => {},
--        // if there's any other unexpected error we just propagate it through
 +        error.PathAlreadyExists => {},
-+        // if is any other unexpected error we just propagate it through
+         // if there's any other unexpected error we just propagate it through
          else => return e,
      };
- 
-     // then we'll try to open our freshly created directory
--    // wait a minute...
-+    // wait a minute
+@@ -44,7 +44,7 @@
+     // wait a minute...
      // opening a directory might fail!
      // what should we do here?
 -    var output_dir: std.fs.Dir = cwd.openDir("output", .{});
@@ -65,36 +18,12 @@
      defer output_dir.close();
  
      // we try to open the file `zigling.txt`,
--    // and propagate any error up
-+    // and propagate the error up if there are any errors
-     const file: std.fs.File = try output_dir.createFile("zigling.txt", .{});
-     // it is a good habit to close a file after you are done with it
-     // so that other programs can read it and prevent data corruption
+@@ -55,7 +55,7 @@
      // but here we are not yet done writing to the file
--    // if only there were a keyword in Zig that
--    // allowed you to "defer" code execution to the end of the scope...
+     // if only there were a keyword in Zig that
+     // allowed you to "defer" code execution to the end of the scope...
 -    file.close();
-+    // if only there were a keyword in zig that
-+    // allows you "defer" code execute to the end of scope...
 +    defer file.close();
  
--    // you are not allowed to move these two lines above the file closing line!
-+    // !you are not allowed to switch these two lines above the file closing line!
+     // you are not allowed to move these two lines above the file closing line!
      const byte_written = try file.write("It's zigling time!");
-     std.debug.print("Successfully wrote {d} bytes.\n", .{byte_written});
- }
- // to check if you actually write to the file, you can either,
--// 1. open the file in your text editor, or
-+// 1. open the file on your text editor, or
- // 2. print the content of the file in the console with the following command
- //    >> cat ./output/zigling.txt
- //
-@@ -86,7 +86,7 @@
- //
- // Question:
- //   - what should you do if you want to also read the file after opening it?
--//   - go to the documentation of the struct `std.fs.Dir` here:
-+//   - go to documentation of the struct `std.fs.Dir` here
- //     https://ziglang.org/documentation/master/std/#std.fs.Dir
- //       - can you find a function for opening a file? how about deleting a file?
- //       - what kind of options can you use with those functions?

+ 9 - 41
patches/patches/107_files2.patch

@@ -1,55 +1,23 @@
---- exercises/107_files2.zig	2024-06-17 10:11:53.651439869 +0200
-+++ answers/107_files2.zig	2024-06-17 10:21:50.700671057 +0200
-@@ -4,17 +4,17 @@
- //    - create a file {project_root}/output/zigling.txt
- //      with content `It's zigling time!`(18 byte total)
- //
--// Now there's no point in writing to a file if we don't read from it, am I right?
--// Let's write a program to read the content of the file that we just created.
-+// Now there no point in writing to a file if we don't read from it am I right?
-+// let's write a program to read the content of the file that we just created.
- //
- // I am assuming that you've created the appropriate files for this to work.
- //
--// Alright, bud, lean in close. Here's the game plan.
-+// Alright, bud, lean in close here's the game plan.
- //    - First, we open the {project_root}/output/ directory
- //    - Secondly, we open file `zigling.txt` in that directory
--//    - Then, we initalize an array of characters with all letter 'A', and print it
--//    - After that, we read the content of the file into the array
--//    - Finally, we print out the content we just read
-+//    - then, we initalize an array of characters with all letter 'A', and print it
-+//    - After that, we read the content of the file to the array
-+//    - Finally, we print out the read content
- 
- const std = @import("std");
- 
-@@ -30,23 +30,23 @@
-     const file = try output_dir.openFile("zigling.txt", .{});
-     defer file.close();
- 
--    // initalize an array of u8 with all letter 'A'
--    // we need to pick the size of the array, 64 seems like a good number
-+    // initalize an array of u8 with all letter 'A'.
-+    // we need to pick the size of the array, 64 seems like a good number.
+--- exercises/107_files2.zig	2025-03-13 15:26:59.532367792 +0200
++++ answers/107_files2.zig	2025-03-14 22:08:35.167953736 +0200
+@@ -33,7 +33,7 @@
+     // initalize an array of u8 with all letter 'A'
+     // we need to pick the size of the array, 64 seems like a good number
      // fix the initalization below
 -    var content = ['A']*64;
 +    var content = [_]u8{'A'} ** 64;
      // this should print out : `AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA`
      std.debug.print("{s}\n", .{content});
  
-     // okay, seems like a threat of violence is not the answer in this case
--    // can you go here to find a way to read the content?
-+    // can you go here to find a way to read the content ?
+@@ -41,12 +41,12 @@
+     // can you go here to find a way to read the content?
      // https://ziglang.org/documentation/master/std/#std.fs.File
      // hint: you might find two answers that are both valid in this case
 -    const bytes_read = zig_read_the_file_or_i_will_fight_you(&content);
 +    const bytes_read = try file.read(&content);
  
--    // Woah, too screamy. I know you're excited for zigling time but tone it down a bit.
--    // Can you print only what we read from the file?
-+    // Woah, too screamy, I know you're excited for zigling time but tone it down a bit
-+    // Can you print only what we read from the file ?
+     // Woah, too screamy. I know you're excited for zigling time but tone it down a bit.
+     // Can you print only what we read from the file?
      std.debug.print("Successfully Read {d} bytes: {s}\n", .{
          bytes_read,
 -        content, // change this line only