Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
Projet_Pico_ordi_B6
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Man hing Ling
Projet_Pico_ordi_B6
Commits
24bc95ab
Commit
24bc95ab
authored
1 year ago
by
Man hing Ling
Browse files
Options
Downloads
Patches
Plain Diff
ajout de la fonction append à la commande TYPE
parent
ae5a82ec
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
SD/picofs.c
+16
-3
16 additions, 3 deletions
SD/picofs.c
with
16 additions
and
3 deletions
SD/picofs.c
+
16
−
3
View file @
24bc95ab
...
@@ -254,7 +254,7 @@ void TYPE(SD_info *sd, char *filename, char *data) {
...
@@ -254,7 +254,7 @@ void TYPE(SD_info *sd, char *filename, char *data) {
int
block_counter
=
1
;
//compteur de blocs utilisés
int
block_counter
=
1
;
//compteur de blocs utilisés
int
index_in_descrBlock
=
0
;
int
index_in_descrBlock
=
0
;
int
offset
;
int
offset
;
int
append_command
=
-
1
;
if
(
sizeFilename
>
MAX_FILENAME_LENGTH
)
{
if
(
sizeFilename
>
MAX_FILENAME_LENGTH
)
{
printf
(
"
\n
Impossible de créer le fichier, nom trop long
\n
"
);
printf
(
"
\n
Impossible de créer le fichier, nom trop long
\n
"
);
...
@@ -265,7 +265,19 @@ void TYPE(SD_info *sd, char *filename, char *data) {
...
@@ -265,7 +265,19 @@ void TYPE(SD_info *sd, char *filename, char *data) {
for
(
int
blockNum
=
0
;
blockNum
<
MAX_BLOCKS_IN_SUPERBLOCK
;
blockNum
+=
16
)
{
for
(
int
blockNum
=
0
;
blockNum
<
MAX_BLOCKS_IN_SUPERBLOCK
;
blockNum
+=
16
)
{
readBlock
(
sd
,
blockNum
,
0
,
buffer
,
MAX_FILENAME_LENGTH
);
readBlock
(
sd
,
blockNum
,
0
,
buffer
,
MAX_FILENAME_LENGTH
);
// Vérifier si le bloc est vide (pas de nom de fichier)
// Vérifier si le bloc est vide (pas de nom de fichier)
if
(
buffer
[
0
]
==
0
)
{
if
(
strncmp
(
buffer
,
filename
,
strlen
(
filename
))
==
0
)
//si même nom de fichier alors on concatenne les data
{
append_command
=
1
;
char
append_description_buffer
[
CHUNK_SIZE
];
// récupère le numéro du bloc dans la description
char
append_buffer
[
CHUNK_SIZE
];
//récupère les données finales à écrire dans le bloc de donnée
readBlock
(
sd
,
blockNum
+
1
,
0
,
append_description_buffer
,
2
);
int
dataBlockNum
=
reconstituteNumber
(
append_description_buffer
);
readBlock
(
sd
,
dataBlockNum
,
0
,
append_buffer
,
CHUNK_SIZE
);
strcat
(
append_buffer
,
data
);
//former les données finales
writeBlock
(
sd
,
dataBlockNum
,
0
,
append_buffer
,
CHUNK_SIZE
);
// écrire dans bloc de donnée, rien à fiare dans description
break
;
}
else
if
(
buffer
[
0
]
==
0
)
{
// Écrire le nom du fichier dans l'emplacement vide du superbloc
// Écrire le nom du fichier dans l'emplacement vide du superbloc
if
(
sizeFilename
<
MAX_FILENAME_LENGTH
)
{
if
(
sizeFilename
<
MAX_FILENAME_LENGTH
)
{
sizeFilename
+=
1
;
// Ajouter '\0' s'il y a de la place
sizeFilename
+=
1
;
// Ajouter '\0' s'il y a de la place
...
@@ -336,7 +348,8 @@ void TYPE(SD_info *sd, char *filename, char *data) {
...
@@ -336,7 +348,8 @@ void TYPE(SD_info *sd, char *filename, char *data) {
if
(
placeFound
!=
-
1
)
{
if
(
placeFound
!=
-
1
)
{
printf
(
"Le fichier
\"
%s
\"
a été créé avec succès.
\n
"
,
filename
);
printf
(
"Le fichier
\"
%s
\"
a été créé avec succès.
\n
"
,
filename
);
}
else
{
}
else
{
printf
(
"Plus de place dans le système de fichier pour créer ce fichier.
\n
"
);
if
(
append_command
==
1
)
printf
(
"Les données ont été concaténées dans le fichier %s
\n
"
,
filename
);
else
printf
(
"Plus de place dans le système de fichier pour créer ce fichier.
\n
"
);
}
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment