Update scanner.c

This commit is contained in:
Gwyn 2026-02-16 16:39:43 -05:00
parent 24ff911c78
commit f7a2389e70

202
scanner.c
View file

@ -1,102 +1,100 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
char* reverseStrchr(const char* str, int character) { char* reverseStrchr(const char* str, int character) {
char* result = NULL; char* result = NULL;
// Iterate through the string // Iterate through the string
while (*str != '\0') { while (*str != '\0') {
// If the character is found, update the result pointer if (*str == character) {
if (*str == character) { result = (char*)str;
result = (char*)str; }
} str++;
str++; }
} return result;
return result; }
}
void parse (char input[75]) {
void parse (char input[75]) { int lenny;
//Morphs input assuming it's a scan to batch code if (strcmp(&input[0], "") == 0) {
int lenny; // pass
if (strcmp(&input[0], "") == 0) { }
// pass else if ('[' == input[0]) { // This handles OldSquare code
} //printf("A step is, %d \n", step);
else if ('[' == input[0]) { // This handles OldSquare code //printf("I got it!\n");
//printf("A step is, %d \n", step); char* entry = strchr(input, '$');
//printf("I got it!\n"); //printf("Entry is: %p\n", entry);
char* entry = strchr(input, '$'); char* exit = reverseStrchr(input, '\x1D');
//printf("Entry is: %p\n", entry); //printf("Exit is: %p\n", exit);
char* exit = reverseStrchr(input, '\x1D'); lenny = exit - entry - 1;
//printf("Exit is: %p\n", exit); //printf("Lenny is: %d\n", lenny);
lenny = exit - entry - 1; char result[lenny+1];
//printf("Lenny is: %d\n", lenny); strncpy(result, (entry+1), lenny);
char result[lenny+1]; result[lenny]='\0';
strncpy(result, (entry+1), lenny); //printf("%s\n", result);
result[lenny]='\0'; strcpy(input, result);
//printf("%s\n", result); }
strcpy(input, result); else if ('+' == input[0]) {
} //We could have Old top or Old Bot code here.
else if ('+' == input[0]) { if ('$' == input[1]) {
//We could have Old top or Old Bot code here. //Old bot code
if ('$' == input[1]) { //+$13KM083319L
//Old bot code lenny = strlen(input);
//+$13KM083319L //printf("Lenny is: %d\n", lenny);
lenny = strlen(input); char result[lenny-4];
//printf("Lenny is: %d\n", lenny); strncpy(result, &input[2], lenny-4);
char result[lenny-4]; result[lenny-4] = '\0';
strncpy(result, &input[2], lenny-4); //printf("%s\n", result);
result[lenny-4] = '\0'; strcpy(input, result);
//printf("%s\n", result); }
strcpy(input, result); else {
} printf("This Barcode does not contain a Batch code\n");
else { }
printf("This Barcode does not contain a Batch code\n"); }
} else if ('0' == input[0]) {
} char result[10];
else if ('0' == input[0]) { lenny = strlen(input);
char result[10]; strncpy(result, &input[26], lenny-26);
lenny = strlen(input); //printf("%s\n", result);
strncpy(result, &input[26], lenny-26); //printf("Lenny is: %d\n", lenny);
//printf("%s\n", result); strcpy(input, result);
//printf("Lenny is: %d\n", lenny); }
strcpy(input, result); else if (strchr(input, '|')) {
} //printf("I got it!\n");
else if (strchr(input, '|')) { lenny = strlen(input);
//printf("I got it!\n"); //printf("Lenny is: %d\n", lenny);
lenny = strlen(input); char* entry = strchr(input, '|');
//printf("Lenny is: %d\n", lenny); char holder[75];
char* entry = strchr(input, '|'); strncpy(holder, entry+1, lenny-(entry-&input[0]));
char holder[75]; //printf("Holder is: %s\n", holder);
strncpy(holder, entry+1, lenny-(entry-&input[0])); entry = strchr(holder, '|');
//printf("Holder is: %s\n", holder); lenny = entry - &holder[0];
entry = strchr(holder, '|'); //printf("Lenny is: %d\n", lenny);
lenny = entry - &holder[0]; char result[lenny];
//printf("Lenny is: %d\n", lenny); strncpy(result, &holder[0], lenny);
char result[lenny]; //printf("Result is: %s\n", result);
strncpy(result, &holder[0], lenny); result[lenny] = '\0';
//printf("Result is: %s\n", result); strcpy(input, result);
result[lenny] = '\0'; }
strcpy(input, result); }
} int main() {
} char input[75]; // 75 char limit
int main() { printf("Begin scanning (type 'exit' to quit):\n");
char input[75]; // 75 char limit
printf("Begin scanning (type 'exit' to quit):\n"); while (1) {
// Read user input
while (1) { fgets(input, sizeof(input), stdin);
// Read user input fputs("\033[A\033[2K",stdout);
fgets(input, sizeof(input), stdin); strtok(input, "\n");
fputs("\033[A\033[2K",stdout); parse(input);
strtok(input, "\n");
parse(input); // Check if the user wants to exit
if (strcmp(input, "exit") == 0) {
// Check if the user wants to exit printf("Exiting program. Goodbye!");
if (strcmp(input, "exit") == 0) { break; // Exit the loop if the user types 'exit'
printf("Exiting program. Goodbye!"); }
break; // Exit the loop if the user types 'exit'
} // Print the input
printf("%s\n", input);
// Print the input }
printf("%s\n", input); return 0;
} }
return 0;
}