Мазмуну:
- 1 -кадам: Сизге эмне керек
- 2 -кадам: Маалыматтар базаңызды орнотуу
- 3 -кадам: NetBeans орнотуу
- 4 -кадам: Биздин негизги классты коддоо
- 5 -кадам: Биздин Create () ыкмасын аныктоо
- 6 -кадам: Биздин колдонмону коддоо
- 7 -кадам: Биздин Жар Файлды Түзүү жана Топтоо
- 8 -кадам: Куттуктайбыз
Video: Java тиркемеси Google Drive маалымат базасында чуркады: 8 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Сиз качандыр бир убакта иштей турган динамикалык маалымат базасында иштеген, технологиялуу эмес колдонуучуларга маалыматтарды киргизүүгө мүмкүндүк берген жана компаниянын ресурстарын иштетпей турган тиркеме түзүүнү кааладыңыз беле? Мейли, анда менде сизге чечим бар. Бүгүн биз Google Driveда (тактап айтканда, Google Барактарында) иштеген жана ар кандай максаттарда колдонула турган тиркеме курабыз. Бул окуу куралы колледж кампусунун айланасында болуп жаткан окуялардын тизмесин көрсөтүү үчүн Окуяга негизделген колдонмону түзүүгө багытталса да, бул долбоор оңой эле кайра жазылып, ар кандай жолдор менен иштей алат, бул көзөмөлдөөчү колдонмо үчүн калькулятор колдонмосу продуктылар үчүн запастар. Мен эмне кылаарыбызды көргүңүз келсе, мен арызымдын көчүрмөсүн тиркеп койдум. ZIP файлын ачыңыз жана анын ичинде JARди иштетиңиз. Ал эми азыр, ары созсуз, баштайлы!
1 -кадам: Сизге эмне керек
Бул долбоорду баштоо үчүн сизге төмөнкү ресурстар керек болот:
-
Netbeans
Мен Java EE жүктөөнү сунуштайм, анткени ал сервердик колдоо көрсөтөт, бирок эгер сиз керексиз файлдарды же кошумча диск мейкиндигин каалабасаңыз, Java SE дагы иштейт. Netbeans биздин колдонмону коддоо жана түзүү үчүн IDE катары кызмат кылат
-
Jsoup
Мен муну Нускамаларга жүктөп алсаңыз болот. Бул HTML талдоочусу, бул бизге жарыяланган электрондук жадыбалдан маалыматты алууга мүмкүнчүлүк берет
-
Java SDK (V8)
Системаңызга туура келген файлды жүктөп алыңыз. Эгерде сизде мурунтан эле Java SDK мурунку версиясында болсо, мен жаңыртууну сунуштайм. Менин кээ бир функцияларым v8ге тиешелүү болгон жаңы лямбда сөздөрүн колдонот жана эмне кылганыңызга жараша код аларсыз иштебеши мүмкүн
-
Visual Studio (Милдеттүү эмес)
Толугу менен кошумча. NetBeans биздин колдонмону түзүү жана таңгактоо үчүн укмуштуудай иштесе да, мен иштеп чыгуу студиясынын чоң күйөрманы эмесмин. Мен VSте кодировканы жакшы көрөм, анткени ал жакшы интерфейске ээ. Эгерде сиз муну жактырбасаңыз, Интернетте көптөгөн башка IDEлер бар, андыктан сизге жаккан нерсени табыңыз
-
Стартер коду
Мен булактын ресурстарына баштапкы кодду киргиздим, ошондой эле аны GitHubга жарыяладым. Мында менде негизги файл (Event) бар, ал иш жүзүндө колдонмону иштетүүчү файлдын түзүлүшүн камсыз кылат, ошондой эле колдонмо үчүн GUI түзүү үчүн JavaFXти колдонгон EventTester. Эгерде сиз толук тажрыйбага ээ болууну кааласаңыз, мен көчүрүүнү жана чаптоону сунуш кылбайм. Шашпаңыз жана муну окуп чыгыңыз
Башкалар:
Java боюнча негизги билим. Javaда билүү пайдалуу болот, мисалы, функцияларды жазуу, объекттерди түзүү ж
2 -кадам: Маалыматтар базаңызды орнотуу
Долбоорду баштоо үчүн, адегенде Google Drive'га кирип, биздин тиркемени иштетүү үчүн колдонула турган баракты түзүшүбүз керек. Drive.google.com сайтына өтүңүз жана жогорку сол бурчтагы "Жаңы" сөлөкөтүн чыкылдатып, астындагы "Барактар" ды тандаңыз.
Барагыңыз жүктөлгөндөн кийин, муну оңой таанылуучу нерсеге өзгөртүңүз. Муну аткаргандан кийин, алдыга жылып, ар бир мамычага сала турган нерселериңиз сыяктуу маалымат аттарыңыз менен жогорку сапты толтуруңуз. Бул жердеги мисалды карап, мен жогорку сапты "Окуянын аты", "Күнү" ж.
Муну аткаргандан кийин, жадыбалыңызды толтурууну каалаган маалыматтар менен толтура баштаңыз. Кодуңуз каталар кетирбестен иштей алышы үчүн, бардык маалыматтарыңызды окшош форматтоону унутпаңыз. Мисалы, эгер сиз кодуңузда даталарды колдонууну пландап жатсаңыз, анда ар бир датаны бирдей форматтап коюңуз, антпесе код аны талдай албайт.
Маалыматыңызды киргизгенден кийин, "Файл" -> "Желеде жарыялоо" бөлүмүнө өтүп, электрондук жадыбалды жарыялаңыз. Бул жерден, сиз бардык документти тандап, анын HTML файлы катары жарыяланганын текшергиңиз келет, ошондо биздин колдонмо маалыматтарды туура тарта алат. Электрондук жадыбалыңызды жарыялагандан кийин, анын берген шилтемесине көңүл буруңуз. Бул кийинчерээк колдонмодо керек болот.
3 -кадам: NetBeans орнотуу
Эми биздин электрондук жадыбалыбыз бар, биз коддоону баштоо үчүн NetBeansти орнотуу убактысы келди. NetBeans жана Java SDKти жүктөп алып, орноткондон кийин, жаңы долбоорду түзүңүз. Түрдү тандоодо "Java" категориясын жана "Java Application" долбоорун тандаңыз. Долбооруңуз кандай аталышын кааласаңыз, ошону тандаңыз (мен өзүмдүн проектимди жөн эле "Окуя" деп атадым). "Китепканаларды сактоо үчүн атайын папканы колдонуу" жанындагы кутучаны, ошондой эле "Негизги классты түзүү" жанындагы кутучаны белгилеңиз. Андан кийин, NetBeans биз иштей башташыбыз үчүн, сүрөттө көрсөтүлгөндөй, долбоор жана проект каталогун түзүшү керек.
Биз коддоону баштоодон мурун, биз NetBeans JSoup китепканасына ээ экендигин текшеришибиз керек, ал биздин электрондук жадыбалды талдоо үчүн керек болот. NetBeansта, долбооруңуздун каталогунун астындагы "Китепканалар" сүрөтчөсүн оң баскыч менен чыкылдатыңыз. Калкыма меню астында.jar файлын кошуу үчүн баскычты тандаңыз. Эми, сиз jsoup жүктөмөсүн кайсы жерге койсоңуз, ошол жерге өтүңүз (эгер сиз башка жерде көрсөтпөсөңүз, жүктөөлөр папкаңыз). Бул файлды тандап, китепканага кошуңуз. Эгерде сиз NetBeans -те Libraries папкаңызды кеңейтсеңиз, анда азыр jsoup.jar бул аймакта көрүнүшү керек. Муну аткаргандан кийин, биз азыр колдонмону коддоого кирише алабыз.
4 -кадам: Биздин негизги классты коддоо
Ошентип, биздин колдонмону коддоонун биринчи кадамы сиздин негизги классты түзүү болуп саналат. Сиздин негизги классыңыз биздин объекттерди түзгөн жерде болот, JSoup менен өз ара аракеттенүүчү методдорго ээ жана башкалар. Муну окуган ар бир адамдын коддоо тажрыйбасы бар деп ойлосок, анда төмөнкү импортту колдонуңуз:
java.util. Collections импорттоо;
java.util. List импорттоо;
java.util. ArrayList импорттоо;
java.util. Date импорттоо;
java.util.stream. Stream импорттоо;
java.util.stream. Collectors импорттоо;
java.text. SimpleDateFormat импорттоо;
java.text. ParseException импорттоо;
org.jsoup. Jsoup импорттоо;
org.jsoup.nodes. Document импорттоо;
org.jsoup.nodes. Element импорттоо;
org.jsoup.select. Elementsти импорттоо;
javafx.beans.property. SimpleStringProperty импорттоо;
Бул көп нерседей сезилиши мүмкүн жана сиздин долбоорго жараша баарынын кереги жок болушу мүмкүн. Биз коддоону улантып жатканыбызда, NetBeans сизде колдонулбаган импорттун бар -жогун билдирип турат, андыктан биз аларды кийинчерээк ар дайым өчүрө алабыз. Бирок, бул азыр бизге керек нерсе.
Импорттук билдирүүлөрүбүздү алгандан кийин, келгиле, классты жарыялайлы. Эгерде сиз класска тиешелүү объектиңизди иштеп чыгууда Даталарды же кандайдыр бир негизги эмес объекти колдонууну пландап жатсаңыз, анда класс декларацияңызга "Салыштырмалуу каражаттарды" кошууну сунуштайм. Бул сизге объекттерди салыштырууга мүмкүндүк берет, бул ClassObjects тизмесин кийин иреттөөгө мүмкүндүк берет. Муну жасагандан кийин, улантыңыз жана сизге керектүү болгон бардык инстанциялардын өзгөрмөлөрүн жарыялаңыз. Сиз түзгөн ар бир коомдук сап үчүн, сиз дагы ал үчүн SimpleStringProperty түзүшүңүз керек болот. Бул кийинчерээк биздин негизги класстагы объекттер менен иштөөгө мүмкүндүк бере турган JavaFX объекттери.
Эми, улантыңыз жана функцияларга кирүүңүздү жарыялаңыз. Негизги өзгөрмөлөрүңүзгө келсек, сиз тандаган нерселериңизге ат бере аласыз. Бирок, сиз SSP кирүү функциялары үчүн getFunctionNameHere () форматын колдонушуңуз керек. Себеби, кийинчерээк биз бул функцияларга туташуу үчүн JavaFXти колдонобуз жана биз колдоно турган функциялар бизден SSP функцияларыбызды get менен баштоону талап кылат. Сиз жогорудагы мисалды көрө аласыз.
Бардык мүмкүндүк алуу өзгөрмөлөрүңүздү аныктагандан кийин, сизге керектүү болгон башка функцияларды аныктаңыз. Бул колдонуучуга өзгөчө мүнөздүү, анткени сизге керектүү функциялар долбоордон долбоорго айырмаланат. Эгер сизге кандайдыр бир шыктандыруу керек болсо, менин Javadoc же чыныгы кодду текшерип, мен жасаган кээ бир функцияларды көрүңүз. Мисалы, мен тизмеге датасы боюнча иреттөөчү функцияны, ошондой эле коомдук статустары бар окуяларды гана кайтарган функцияларды жана башкаларды түздүм. Кээ бир тесттерди жасоо үчүн бул статикалык кылуу туура болсо да, мен долбоордун кийинки баскычына келгенде каталарды болтурбоо үчүн, мүчүлүштүктөрдү оңдоону аяктагандан кийин, эч кандай статикалык ыкмаларга ээ болбоону сунуштайм.
5 -кадам: Биздин Create () ыкмасын аныктоо
Эми, балким, коддун эң маанилүү бөлүгү келет, анда биз create () ыкмасын аныктайбыз, бул биздин веб -баракчабызга кирүү жана бизге маалымат алуу. Метод декларацияңызга ыргытуу өзгөчө учурун кошууңуз керек экенин белгилей кетүү маанилүү, андыктан кодубузга аракет блокторун жазуунун кажети жок. Баштоо үчүн, объектиңиздин бош тизмесин жарыялаңыз. Менин учурда, ал окшош көрүндү
Окуя окуялары = жаңы ArrayList ()).
Эми барып, мурда жарыяланган электрондук жадыбалга көчүргөн URLиңизди табыңыз. Бул шилтемени Java тилкеси катары жарыялаңыз жана каалаган нерсеңизди чакырыңыз. Эми, бара бериңиз жана жаңы Jsoup документин жарыялаңыз. Сыяктуу жаңы документ объектисин түзүү менен жасай аласыз
Document doc = new Document ();
Эми, бара бериңиз жана документиңизди биздин URLге туташып, маалыматтарды алыңыз. Ан үчүн, аракет кылыңыз:
Документ doc = Jsoup.connect (url).get ();
Эми, биз чыныгы маалыматтар сакталган документибиздин денесин алышыбыз керек.
String body = doc.body (). Text ();
Эми биз маалыматты денеден чыгарып башташыбыз керек. Биздин маалыматтар столдо болгондуктан (ал таблица болгондуктан), биз столду денеден сууруп алышыбыз керек. Кел, аракет кылалы
Element table = doc.select ("table"). Get (0);
Бул биринчи столду тандайт. Бул учурда, бир гана бар. Эми, териңиз
Elements rows = table.select ("tr");
Бул бизге айтылган таблицанын бардык катарларын алат.
Ошентип, азыр биздин бардык маалыматтарбыз бул саптардын өзгөрмөсүндө. Бул баары жакшы, бирок бул функцияны бул класстын ичинде жазуунун мааниси - биз андан объекттерди түзө алабыз. Ошентип, муну кайтаруудан мурун, биз катарларыбыздан Тизме түзүшүбүз керек. Бул үчүн for циклин колдонсок болот. Белгилей кетчү нерсе, бул мени оңдоо үчүн бир аз сыноо жана каталарды алды. Мен катарлардан тартып жатканда, биздин айрым маалыматтар бул кырдаал үчүн пайдалуу эмес экенин түшүндүм, анткени ал жеке баракчанын аталышын, маалымат саптарыбызды камтыган биринчи сапты ж.б.у.с. for циклинин номерин 2ге киргизип, ал бул нерселерди айланып өтүп, биздин нерселерди түзө алат. Акыр -аягы, мен код менен бир көрүнүштү иштеп чыктым
үчүн (int i = 2; i <rows.size (); i ++) {
Элемент сабы = rows.get (i);
Cols элементтери = row.select ("td");
Эми, объектти түзүү үчүн, ушундай бир нерсе кылыңыз
Объект аты = жаңы Объект (cols.get (0).text ());
Негизи, cols.get (0) (i) тилкесинен (0) маалыматтарды алат жана аны Стрингге айландырат, андан кийин объектинин конструкторуна берилиши мүмкүн.
Курулушту орноткондон кийин, биз аны list.add () менен мурда түзүлгөн Тизмеге кошуңуз, мисалы
окуялар.адд (аты);
Эми, циклди жабыңыз жана азыр керек болгон функцияларды чакырыңыз. Мисалы, мен окуяларды датасына жараша алуу үчүн сорттоо функциясын чакырдым. Муну кылгандан кийин, Тизмеңизди кайтарыңыз, анан сиз бул бөлүмдү бүтүрдүңүз!
6 -кадам: Биздин колдонмону коддоо
Жаңы файл түзүңүз жана ага эмнени тандасаңыз ошонун атын коюңуз. Сизге төмөнкү импорт керек болот:
java.util. List импорттоо;
java.util. ArrayList импорттоо;
java.util. Date импорттоо;
javafx.geometry. Pos импорттоо;
javafx.scene.layout. HBox импорттоо;
javafx.application. Application импорттоо;
javafx.collections.transformation. FilteredList импорттоо;
javafx.scene.text. Font импорттоо; javafx.scene.control импорттоо.*;
javafx.collections. FXCollections импорттоо;
javafx.collections. ObservableList импорттоо;
javafx.geometry. Insetsти импорттоо;
javafx.scene. Group импорттоо;
javafx.scene. Scene импорттоо;
javafx.scene.control. Label импорттоо;
javafx.scene.control.cell. PropertyValueFactory импорттоо;
javafx.scene.layout. VBox импорттоо;
javafx.stage. Stage импорттоо;
Мен билем, бул көп көрүнүшү мүмкүн, бирок мага ишен, алар биздин тиркемени түзүшүбүз үчүн керек. Уланта бериңиз жана классыңызды жарыялаңыз, жана бул Колдонмону кеңейтет, анткени бул долбоордун зарыл компоненти. Башында объектиңиздин TableView болгон жаңы мисал өзгөрмөсүн жарыялаңыз, мисалы
жеке TableView таблицасы = жаңы TableView ();
Ошондой эле, биз колдонмону ишке киргизе турган негизги ыкманы жарыялайбыз. Негизи, ал үстүңкү сүрөттөгүдөй болушу керек.
Эми биз баштоо методубузду түзүшүбүз керек. Бул Exception экенин текшериңиз, анткени биз мурунку класстагы create () ыкмасын чакырабыз. Бош параметрлери бар жаңы окуяны түзүңүз, биз аны түзүү ыкмасын чакыра алабыз. Жаңы Тизмени аныктап, аны create () жыйынтыгына барабар кылыңыз. Эми, биздин маалыматтар менен столубузду толтуруу үчүн колдонула турган жаңы ObservableList түзүңүз. Аны төмөнкүдөй аныктаңыз:
ObservableList data = FXCollections.observableArrayList ();
Эми жаңы сахна түзүңүз:
Сахна сценасы = жаңы сахна (жаңы топ ());
Аталышын, туурасын, бийиктигин жана сизге керектүү нерселердин бардыгын коюңуз. Сиз менин баалуулуктарымды жогорудагы сүрөттөн көрө аласыз. Эми биз дасторконубузду жыйнай баштайбыз. Көрсөткүңүз келген бардык маалымат үчүн TableColumn түзүңүз, мисалы:
TableColumn eventCol = жаңы TableColumn ("Окуянын аты"); eventCol.setMinWidth (100); eventCol.setCellValueFactory (жаңы PropertyValueFactory ("sName"));
"SName" параметри SSP кирүү функцияларыңыздын аты менен толтурулушу керек, андыктан ал берилген объекттер үчүн керектүү болгон баалуулуктарды ала алат. Канча тилке керек болсо, ошону менен үстөлгө кошуңуз
FilteredList flEvent = new FilteredList (data, p -> true);
table.setItems (flEvent);
table.getColumns (). addAll (eventCol, statCol, groupCol, datingCol, descCol, locationCol);
Эгерде сиз мен сыяктуу издөө тилкесин кошкуңуз келсе, анда сиздин колдонуучуга таблицаны белгилүү бир баалуулуктар боюнча чыпкалоого мүмкүндүк бере турган choiceBox жана textField түзүү боюнча маалымат алуу үчүн кодду текшериңиз. Эгерде сиз муну тандап алган болсоңуз, анда hBox түзүшүңүз керек болот
HBox hBox = жаңы HBox (choiceBox, textField);
hBox.setAlignment (Pos. CENTER);
Төмөндөгү.addAll () ыкмасына hBox кошууңуз керек болот.
Болбосо, биздин маалыматтарды сактоо үчүн жаңы vBox түзүңүз
акыркы VBox vbox = жаңы VBox ();
vbox.getChildren (). addAll (энбелги, стол);
((Group) scene.getRoot ()). GetChildren (). AddAll (vbox);
stage.setScene (сахна); stage.show ();
Эми кодуңузду түзүп, иштетип көрүңүз жана ал иштейби. NetBeans колдонуп, экрандын оң жагында кызыл тилкелер катары пайда болгон каталарды табыңыз. Мындан ары ката кетирмейинче, бул иштей бериңиз жана долбоор иштейт.
Кодуңузду бүтүргөндөн кийин, мен сиздин кодуңуздун Javadocун түзүүнү сунуштайм, ошондо адамдар сиздин кодуңуздун эмне кылганын көрө алышат. Бул үчүн, экрандын жогору жагындагы "Run" баскычынын астында "Javadoc түзүү" баскычын басыңыз. Биринчи беттеги zip файлдын ичине карап, index.html файлын тандоо менен менин Javadocтун көчүрмөсүн таба аласыз.
7 -кадам: Биздин Жар Файлды Түзүү жана Топтоо
Жетиштүү түрдө мүчүлүштүктөрдү оңдоп, ийгиликтүү иштеткенден кийин, акыры муну JAR файлына чогулта аласыз, аны башкалар жарыялай алышат, андыктан NetBeans же Jsoupтун кереги жок бул программаны иштете алышат.
Колдонмоңузду түзүүдөн мурун, бардыгы аткарылганын текшериңиз. Эгерде сиз документтерди кошуп, JavaDoc түзүүнү кааласаңыз, муну улантыңыз. Эгерде сизде консолго басып чыгаруучу System.out буйруктары болсо, аларды алып салыңыз. Негизи, сиздин колдонмоңузда керексиз буйруктар же функциялар жок экендигин жана пакеттөө үчүн керектүү нерселердин бардыгын текшериңиз.
Муну аткаргандан кийин, NetBeans долбоорунун атын оң баскыч менен чыкылдатыңыз. Ал менюну ачышы керек. Hit касиеттери (менюнун эң ылдый жагында), анан жаңы ачылуучу менюнун сол жагындагы "Packaging" баскычын басыңыз. Эми, бардык белгилөө кутучалары белгиленгенин текшериңиз. Сиздин экран жогорудагыдай болушу керек.
Муну кылгандан кийин, NetBeans долбооруңузду дагы бир жолу оң баскыч менен чыкылдатыңыз. Бул жерде "Тазалоо жана Куруу" баскычын басыңыз, ошондо NetBeans китепканаларыңызды жана файлдарыңызды алып, аларды иштеп жаткан JAR файлына чогулта баштайт. Эгерде баары ойдогудай болсо, консолдо бир нече мүнөттөн кийин JARыңыздын компиляциясы аяктагандыгы тууралуу билдирүү көрүнүшү керек жана файлды азыр иштетсе болот. Бул колдонмону иштетип, баары иштээрин текшериңиз. Болбосо, мүчүлүштүктөрдү оңдоп, каталар иштелип чыкмайынча процессти кайра баштаңыз.
8 -кадам: Куттуктайбыз
Куттуктайм! Эгерде сиз бардык көрсөтмөлөрдү туура аткарып, бардыгын жакшы коддогон болсоңуз, анда өзүңүздүн жумушчу колдонмоңуз болушу керек. Эң сонун нерсе, азыр сиз же сиздин таблицаңызга кире алган башка бирөө маалыматты түзөткөндө, сиздин колдонмоңуз жаңы маалыматтарды өзгөртүп, реакция кыла алат. Бул жерде меники кандай болгонун көрсөткөн тез видео.
Эгерде сиз өркүндөтүүнү жана курууну улантуунун жолдорун издесеңиз, анда мен JavaFXтин FancyText же FancyButton сыяктуу кээ бир өнүккөн функцияларын текшерип чыгууну сунуштайм. Ийгилик каалайм, эгер сизге жардам керек болсо же менин кодумдан ката кеткенин байкасаңыз, комментарий калтырыңыз!
Сунушталууда:
Temp/Humidity маалымат анализи Ubidots жана Google-Sheetsти колдонуу: 6 кадам
Temp/Humidity маалымат анализи Ubidots жана Google-Sheetsти колдонуу: Бул үйрөткүчтө биз температура жана нымдуулук сенсорунун жардамы менен ар кандай температура жана нымдуулук маалыматтарын өлчөйбүз. Сиз бул маалыматтарды Ubidotsко кантип жөнөтүүнү үйрөнөсүз. Ошентип, аны ар кандай колдонмо үчүн каалаган жерден талдай аласыз. Ошондой эле жөнөтүү аркылуу
Менин биринчи Java тиркемеси: 6 кадам
Менин биринчи Java тиркемеси: Сиз өзүңүздүн java тиркемесин түзүүнү каалайсыз, бирок кандайдыр бир себептерден улам аны кечеңдете бересизби? "Эртең акыры мен муну кылам" дегениңизди угуп жатасызбы? Бирок ал эртең эч качан келбейт. Ошондуктан, сиз азыр башташыңыз керек, азыр ханзаадаңызды алууга убакыт келди
ARDUINO ЖАНА GSM КОЛДОНУУСУ RFID БАЗАСЫНДА КАТЫШУУ СИСТЕМАСЫ: 5 кадам
ARDUINO ЖАНА GSM КОЛДОНУУЧУ RFID НЕГИЗГИ КАТЫШУУ СИСТЕМАСЫ: Бул проект RFID технологиясын колдонуп, класска кирген ар бир окуучуну эскертип, класста жашаган убактысын эсептейт. Бул сунушталган системада ар бир студент RFID теги менен бөлүштүрүлөт. Катышуу процесси мындай болушу мүмкүн
Apple Disk II Floppy Drive USB Hard Disk тиркемеси катары реинкарнацияланган: 8 кадам
Apple Disk II Floppy Drive USB Hard Disk тиркемеси катары реинкарнацияланган: Коридорлор менен университеттин кеңсесине бара жатканда мен коридордо чуркап, эски таштандылар катары үйүлгөн. Баалуу таштардын бири Apple Disk II дискетасы болчу. Мен аны колго алдым, жүрөгүмдө ностальгия пайда болуп, сүйүү менен кайра жан бердим
Эски Zip IDEдеги USB Thumb Drive тиркемеси: 7 кадам
Эски Zip IDEдеги USB Thumb Drive тиркемеси: Мени бул "ible https://www.instructables.com/id/DIY_USB_quotHard_Drivequot/ шыктандырып, эски HDDди колдонуп, кээ бир USB бармак дисктерин жайгаштырганмын, бирок мен торско кыска болчумун. бир аз жана чыдамсыздык менен. Ошентип, мен анын ордуна өлгөн Zip дискти колдондум