Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Datenbank in Textdokument?

Mitglied: Ileies

Ileies (Level 1) - Jetzt verbinden

31.01.2019 um 15:19 Uhr, 369 Aufrufe, 6 Kommentare, 1 Danke

Ich habe folgendes Problem:
Ich arbeite mit Batch und möchte eine Textdatei bearbeiten:

C:\test.txt
Marco ; Mustermann
Annika ; Schwarz
Janina ; Müller

Jetzt soll es 3 Optionen geben:

A: Hinzufügen
Name und Nachname werden einzeln eingegeben und in eine neue Zeile abgespeichert.

B: Bearbeiten
Name und Nachname werden einzeln eingegeben und überschreiben die ausgewählte Zeile.

C: Löschen
Eine ganze Zeile mitsamt Zeilenumbruch wird gelöscht.

OPTIONAL:
Man kann eine Variable statt einem Namen eingeben:
(set var=Mustermann)
Option:_
>>>B
Zeile:_
>>>3
Name:_
>>>Janina
Nachname:_
>>>var
Name von Zeile 3 auf Janina Mustermann aktualisiert!


Ich danke euch schon einmal im Voraus für die Hilfe!
Mitglied: Penny.Cilin
31.01.2019 um 15:59 Uhr
Hallo,

was hast Du bisher an Code? - Sprich was bisher selbst erstellt? Zeuge uns doch mal den Code, welchen Du bisher entwickelt hast.

Wenn es unbedingt Batch sein sollte, hier etwas Lesefutter bzgl. Windows Batch:

Ansonsten ist eine Textdatei KEINE gute Idee für eine Datenbank.

Gruss Penny
Bitte warten ..
Mitglied: NetzwerkDude
31.01.2019 um 16:14 Uhr
Ausser er will eine NoSQL Datenbank aufbauen, dann sinds schlussendlich Textdateien :P
Bitte warten ..
Mitglied: erikro
31.01.2019 um 16:16 Uhr
Moin,

Zitat von Penny.Cilin:
Zeuge uns doch mal den Code, welchen Du bisher entwickelt hast.

Sagt der Code dann auch Papa zu mir?

Ansonsten ist eine Textdatei KEINE gute Idee für eine Datenbank.

Ich habe mich auch gefragt, was das soll. Ist das eine Hausaufgabe eines vollkommen durchgeknallten Dozenten? Wieso Textdatei und Batch? Wenn schon, dann wenigstens Powershell, die mit csv halbwegs umgehen kann ...

Die erste Aufgabe ist ganz einfach:

01.
 echo Vorname;Nachname >>test.txt
Den Rest möchte ich nicht mit Batches lösen müssen.

Liebe Grüße

Erik
Bitte warten ..
Mitglied: 138721
LÖSUNG 03.02.2019, aktualisiert um 15:55 Uhr
Ich habe folgendes Problem:
Kein Problem sondern ein Krampf. Wohl mal wieder eine Aufgabe eines Prof. jenseits der Rente.
Wenn es dir hier primär um das Üben von Batch geht (hoffentlich!) und ausdrücklich nicht um produktives dann tobe dich hiermit mal aus.
Batch ist für einfache Routineaufgaben geeignet aber um Gottes Willen nicht für Datenbanken (würg...).
Gehen tut alles aber ob man sich das antun will ...nicht wirklich. Lerne besser gleich SQL/PS & Co. ...
01.
@echo off & setlocal
02.
chcp 1252
03.
set "DBFILE=.\db.txt"
04.
:MAINMENU
05.
cls
06.
echo.
07.
echo =============== MENU ===============
08.
echo.
09.
echo 	[1] User anzeigen
10.
echo.
11.
echo 	[2] User erstellen
12.
echo.
13.
echo 	[3] User bearbeiten
14.
echo.
15.
echo 	[4] User löschen
16.
echo.
17.
echo 	[5] Ende
18.
echo.
19.
choice /C 12345 /M "Bitte wählen:"
20.
if "%ERRORLEVEL%" == "255" goto :EOF
21.
if %ERRORLEVEL% == 5 goto :EOF
22.
if %ERRORLEVEL% == 4 goto :DELETEUSER
23.
if %ERRORLEVEL% == 3 goto :EDITUSER
24.
if %ERRORLEVEL% == 2 goto :CREATEUSER
25.
if %ERRORLEVEL% == 1 goto :SHOWUSER
26.
if %ERRORLEVEL% == 0 goto :EOF
27.
goto :EOF
28.

29.
:SHOWUSER
30.
cls
31.
echo.
32.
echo ==== BENUTZER ANZEIGEN ====
33.
echo.
34.
if not exist "%DBFILE%" (
35.
	echo Es gibt noch keine User. Bitte erstellen sie erst welche.
36.
	timeout /t 2
37.
	goto MAINMENU
38.
)
39.
echo NACHNAME, VORNAME
40.
echo =================
41.
for /f "usebackq tokens=1-2 delims=;" %%a in ("%DBFILE%") DO echo %%b, %%a
42.
echo.
43.
pause
44.
goto MAINMENU
45.

46.
:CREATEUSER
47.
cls
48.
echo ==== BENUTZER ERSTELLEN ====
49.
echo.
50.
set /p "VORNAME=Vorname eingeben: "
51.
if "%VORNAME%" == "" (
52.
	echo Fehler! Vorname darf nicht leer sein
53.
	echo.
54.
	timeout /t 2
55.
	goto CREATEUSER
56.
)
57.
set /p "NACHNAME=Nachname eingeben: "
58.
if "%NACHNAME%" == "" (
59.
	echo Fehler! Nachname darf nicht leer sein
60.
	echo.
61.
	timeout /t 2
62.
	goto CREATEUSER
63.
)
64.
echo.
65.
call :USEREXISTS "%VORNAME%;%NACHNAME%" && (
66.
	echo User mit diesen Namen existiert schon! Eingabe bitte wiederholen.
67.
	echo.
68.
	timeout /t 2
69.
	goto CREATEUSER
70.
) || (
71.
  >>"%DBFILE%" echo.%VORNAME%;%NACHNAME%
72.
	echo Benutzer '%VORNAME% %NACHNAME%' wurde gespeichert.
73.
	echo.
74.
	timeout /t 2
75.
)
76.
goto MAINMENU
77.

78.
:EDITUSER
79.
cls
80.
echo ==== BENUTZER BEARBEITEN ====
81.
echo.
82.
set /p "VORNAME=Bestehenden Vornamen des Users eingeben: "
83.
set /p "NACHNAME=Bestehenden Nachnamen des Users eingeben: "
84.
echo.
85.
call :USEREXISTS "%VORNAME%;%NACHNAME%" && (
86.
	findstr /ilvc:"%VORNAME%;%NACHNAME%" "%DBFILE%" >"%TEMP%\db.txt" & move "%TEMP%\db.txt" "%DBFILE%" >nul
87.
	set /p "VORNAME=Neuen Vornamen eingeben: "
88.
	set /p "NACHNAME=Neuen Nachnamen eingeben: "
89.
	setlocal ENABLEDELAYEDEXPANSION
90.
	>>"%DBFILE%" echo.!VORNAME!;!NACHNAME!
91.
	echo.
92.
	echo. Benutzer '!VORNAME! !NACHNAME!' wurde erstellt.
93.
	endlocal
94.
	timeout /t 2
95.
	goto MAINMENU
96.
) || (
97.
	echo Benutzer '%VORNAME% %NACHNAME%' existiert nicht! Eingabe wiederholen.
98.
	echo.
99.
	timeout /t 2
100.
	goto EDITUSER
101.
)
102.
goto MAINMENU
103.

104.
:DELETEUSER
105.
cls
106.
echo ==== BENUTZER LÖSCHEN ====
107.
echo.
108.
set /p "VORNAME=Bestehenden Vornamen des Users eingeben: "
109.
set /p "NACHNAME=Bestehenden Nachnamen des Users eingeben: "
110.
echo.
111.
call :USEREXISTS "%VORNAME%;%NACHNAME%" && (
112.
	findstr /ilvc:"%VORNAME%;%NACHNAME%" "%DBFILE%" >"%TEMP%\db.txt" & move "%TEMP%\db.txt" "%DBFILE%" >nul
113.
	echo. Benutzer '%VORNAME% %NACHNAME%' wurde gelöscht.
114.
	timeout /t 2
115.
	goto MAINMENU
116.
) || (
117.
	echo Benutzer '%VORNAME% %NACHNAME%' existiert nicht! Eingabe wiederholen.
118.
	echo.
119.
	timeout /t 2
120.
	goto DELETEUSER
121.
)
122.

123.
:USEREXISTS
124.
findstr /ibelc:"%~1" "%DBFILE%" >nul 2>&1 && exit /b 0 || exit /b 1
Gruß l
Bitte warten ..
Mitglied: Ileies
05.02.2019 um 17:06 Uhr
Danke für dein Programm, es war mir eine große Hilfe!

Am Anfang habe ich nicht direkt geantwortet, da ich aus mangelnden Kenntnissen noch kein Programm anfertigen konnte.
Der größte Teil deines Programmes war gut verständlich, allerdings habe ich das mit dem "findstr" nicht verstanden.

Könntest du einmal definieren, welche Komponenten des Programmes wofür stehen?
:
""findstr /ibelc:"%~1" "%DBFILE%" >nul 2>&1 && exit /b 0 || exit /b 1""
Bitte warten ..
Mitglied: 138721
LÖSUNG 05.02.2019, aktualisiert um 17:13 Uhr
findstr /? hilft für die Optionen.

findstr /ibelc
Bedeutet
/i = suche Case insensitive
/b = Suche vom Anfang des Strings an
/e = Suche vom Ende des Strings an
/l = Suche nach normalen Strings nicht nach Regex
/c = Sucht nach Zeichenfolge buchstabengetreu.
"%~1"
Bedeutet der erste übergebene Parameter an die Subprozedur = Suchname
"%DBFILE%"
Das Datenbankfile
>nul 2>&1
Bedeutet leite STERR nach STDOUT UM und das ganze ins Nirvana damit keine Ausgabe erzeugt wird.

&& exit /b 0
Bedeutet beende Subprozedur mit Exit-Code 0 wenn User gefunden wurde
|| exit /b 1
Bedeutet beende Subprozedur mit Exit-Code 1 wenn User nicht gefunden wurde
Bitte warten ..
Ähnliche Inhalte
HTML
Textdokument in HTML einbauen
gelöst Frage von deinernstjetztHTML2 Kommentare

Hallo, ich möchte in HTML ein Textdokument für zb. AGB's einbauen. Das sollte in einem ca 200x200px Feld angezeigt ...

Datenbanken
FAQ Datenbank
Frage von winIT3264Datenbanken

Hallo zusammen, ich arbeite derzeit an einer IT FAQ Datenbank (Access + Abfragemaske). Erstens für mich damit ich nicht ...

Datenbanken
Datenbank im Intranet
gelöst Frage von abuelitoDatenbanken7 Kommentare

Hallo an Alle, ich habe folgendes Problem Zudem bin ich in Sachen Datenbank noch ziemlich grün hinter den Ohren ...

Datenbanken
MySQL Datenbank kopieren
Frage von 77282Datenbanken8 Kommentare

Hallo, wie kopiere ich eine MySQL Datenbank? Kann ich hier einfach die Dateien kopieren und kann diese auch einfach ...

Neue Wissensbeiträge
Windows 7

Windows 7 u. Server 2008 (R2) SHA-2-Update kommt am 12. März 2019

Information von kgborn vor 1 TagWindows 75 Kommentare

Kleine Info für die Admins der oben genannten Maschinen. Ab Juli 2019 werden Updates von Microsoft nur noch mit ...

Firewall
PfSense 2.5.0 benötigt doch kein AES-NI
Information von ChriBo vor 2 TagenFirewall2 Kommentare

Hallo, Wie sich einige hier erinnern werden hat Jim Thompson in diesem Aritkel beschrieben, daß ab Version 2.5.0 ein ...

Internet
Copyright-Reform: Upload-Filter
Information von Frank vor 4 TagenInternet1 Kommentar

Hallo, viele Menschen reden aktuell von Upload-Filtern. Sie reden darüber, als wären es eine Selbstverständlichkeit, das Upload-Filter den Seitenbetreibern ...

Google Android

Blokada: Tracking und Werbung unter Android unterbinden

Information von AnkhMorpork vor 4 TagenGoogle Android1 Kommentar

In Ergänzung zu meinem vorherigen Beitrag: Blokada efficiently blocks ads, tracking and malware. It saves your data plan, makes ...

Heiß diskutierte Inhalte
Hardware
IT-Werkzeugkoffer bis 50,- EUR
gelöst Frage von departure69Hardware44 Kommentare

Hallo. Ich bin als IT-Systembetreuer einer Gemeinde zusätzlich auch der IT-Systembetreuer einer Grund- und Hauptschule. Dort muß ich jedoch ...

Netzwerke
Verteilung von Programmdaten außerhalb des internen Netzwerkes
Frage von mertaufmbergNetzwerke27 Kommentare

Guten Morgen liebe Administratoren, ich versuche zurzeit eine möglichst sichere und einfache Lösung zu suchen, um ein Programmverzeichnis über ...

Netzwerkmanagement
Richtfunknetzwerk mit vielen Hops stabiler gestalten
Frage von turti83Netzwerkmanagement22 Kommentare

Hallo, in meinem Dorf habe ich vor ca. einem Jahr ein Backbone aufgebaut um die Nachbarschaft mit Internet zu ...

Hyper-V
Intel MSC Raid 5 Rebuild
Frage von DannysHyper-V19 Kommentare

Hallo Community, Ich habe einen Modul Server von Intel in Betrieb. Dort ist eine Festplatte aus dem Raid 5 ...